最近の追加したemacs設定。
- Esc-c: カーソル位置の単語をコピー
- Ctl-c,g : カーソル位置の単語を指定してgrep-findを実施
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; copy word on cursol-point
;;
(ffap-bindings)
(global-set-key "\M-c" 'ffap-copy-string-as-kill)
(defun grep-find-current-word ()
(interactive)
(let ((command "find . -type f -print0 | xargs -0 -e grep -n -e "))
(ffap-copy-string-as-kill)
(grep-find (format "%s %s"
command (car kill-ring)))))
(define-key global-map "\C-cg" 'grep-find-current-word)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; hippie-expand
(define-key esc-map " " 'hippie-expand) ;; M-SPC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; goto-line
(define-key global-map "\C-cj" 'goto-line)
2006/11/16追記
複数階層からなるtagsファイルを作成:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; create tag file recursive
(defun create-tags-file-recursive ()
(interactive)
(let ((tag-file "tags"))
(shell-command
(format "find `pwd` -name \"*.[ch]\" -print | etags - -o %s" tag-file))
(visit-tags-table tag-file)))
etagsのfind-tag(M-.)コマンドやら、sdicのsdic-describe-word-at-pointと
かでは、コマンド入力時にカーソルがある付近の単語をデフォルトの文字列と
して認識してくれるのに、よく使うgrep-findではわざわざ検索文字列を入れ
ないと検索してくれなくて不便だなーと思ったのでちょっと調べてみた。
本当は、grep-find-commandが登録されてるかどうかで挙動を変えたかったん
だけど、挙動がMeadowとlinux版emacsで微妙に異なったりしたので、とりあえ
ず下のような所で妥協してみた。kill-ringに入れるので、その後pasteもでき
ます。
ついでに単にkill-ringに入れるだけってのも、キーバインドに登録してみた。
(ffap-bindings)
(global-set-key "\M-c" 'ffap-copy-string-as-kill)
(defun grep-find-current-word ()
(interactive)
(let ((command "find . -type f -print0 | xargs -0 -e grep -n -e "))
(ffap-copy-string-as-kill)
(grep-find (format "%s %s"
command (car kill-ring)))))
(define-key global-map "\C-cG" 'grep-find-current-word)
もっと格好良いやり方があれば教えてください。
これまでのエントリで
- Pyblosxom用エントリファイル作成
- Pyblosxom用エントリファイルのFTP送信
と来たので、こうなると当然更新pingもローカルマシン上で実行
できたらいいよね、ということで weblogUpdate.py を作ってみました。
feedburnerを使っているためまずはそちらに更新pingを送り、
feedburner側のフィードが書き換わったであろう頃にその他の
サーバに更新pingを送る、というようにしています。
どうせなら、emacs上から実行できた方が流れとしてはスムーズなので
下記のように.emacsに設定。FTP送信用に設定したpyentry-ftp関数内
から呼び出すようにしてももちろんいいんだけど、ftpでアップロード
した後に文章の見栄えを調整するためにちょこちょこいじるので、
あえて別にしています。
(defun pyentry-ping ()
(interactive)
(shell-command "~/src/python/weblogUpdate.py"))
;アクセスしやすいようキーコマンドを下記のように割り当て
(global-set-key "\C-cF" 'pyentry-ftp)
(global-set-key "\C-cP" 'pyentry-ping)
メモの取り方は世の中には色々あって、実際に
- Wiki系
- ChangeLogメモ
- reStructuredText記法を使ったメモ
やらの方法を試してみたんだけど、しばらく使うとどれも飽きてしまって、これだ!こ
れで俺はメモを取り続けるぞ!というものにまだめぐり合えていない。そこで、現在は
Windows/Cygwin/apacheの環境で、pyblosxomを使った作業メモを実践している。この方
法の利点と欠点は、
- 利点: エントリを記述したり修正したりするときには自分が普段使ってるMeadowを使って編集できる
- 欠点: pyblosxomは一つのエントリごとに一つのファイルを作成する方式なのでやたらとファイルが増えてしまう
やたらとファイル数が増えてしまうというのは結構不満なんだけど、他によさそうな方
法を今のところ思いつかないのでとりあえずこの方法で4ヶ月程実践している。
Continue Reading...: "作業メモの取り方と、Meadowでの日本語検索(utf-8)"