マニュアルがわけわからん
英辞郎があれば楽に英語は読めるけど 何回やっても何回やっても マニュアルがわからないよ!
読んでてほんとに意味不明なのが多い。もっと使用例が欲しい。でないと読む気失せる。
fake-accept - 履歴に登録するだけ
http://journal.mycom.co.jp/column/zsh/003/index.htmlの
もはや漢のスクリプトはコマンド履歴の中にあるものだ。
に触発されて編集中のコマンドの内容(Emacs同様バッファと言う)を履歴に登録するだけのZLE widgetを作ってみた。ソフトウェアのコンパイルなど、試行錯誤の末に正解を発見した場合に、一連のコマンドをまとめたものを履歴に登録したくなる。そうすることで次回同じことをする場合はC-rで履歴検索をすることで自動化された形で取り出すことが可能だ。
history-menuと併用するとテキパキと履歴の内容をバッファに挿入できる。C-M-jかC-M-mかM-RETで改行をバッファに挿入する。
ちなみに名前については「実行するふりをする」意味でfake-acceptだ。コマンドを実行するwidget(RET)の名前はaccept-lineなので、acceptだ。以下を.zshrcに登録しよう。
fake-accept () { print -s "$BUFFER" print " [added to history]" zle send-break } zle -N fake-accept bindkey "^[m" fake-accept
以下が2行のコマンドを履歴に登録した後に、C-pで履歴を呼出している様子だ。カーソルは[*]の位置にある。
$ echo foo echo bar [added to history] $ echo foo echo bar[*]
anything.elの記事
http://dev.ariel-networks.com/Members/matsuyama/open-anything-emacs
おお、anything.elについて詳しい記事を書いてくれてる。気付いた点のみちょっとツッコミ。
・ 候補数を絞るのが難しい(特に locate )
俺の場合はホームディレクトリのみのlocatedbを作っているので候補数は限られてくる。いつも選択するファイルは必然的にホームディレクトリ内になることが圧倒的に多い。d:id:rubikitch:20070727#1186048110 参照。
locateのおかげでファイルを開く手間が大幅に省けて幸せだ。
ちなみにanythingで入力するのは実は正規表現。だから正規表現を書き換えてしまばいいかと。
絞り込み検索がしたいならば、iciclesを入れてみるのもテかな。
・ 機能ごとの次と前がない
ありますよ。anything-next-source, anything-previous-source。俺はM-N, M-Pに割り当てている。
・ 結構重い
まぁelisp自体が激遅というのもあるけれど、どういう目的でanythingを使うかに依存してくるだろう。俺の場合はswitch-to-buffer系(switch-to-buffer, find-file, locate, file-cache, bookmark)ばかりだからたいして重くはない。おかげでiswitchbを捨てることができた。
Occurはisearch-occurを使っている。isearchからOccurのほうが俺的には自然な流れなので。
まだ実験していないけれど、用途ごとのanythingを用意したほうがいいかもしれない。たとえばfind-file系統と検索系統に分けるとか。
(defun anything-for-search () (interactive) (let ((anything-sources anything-sources-for-search)) (anything)))
zshのコマンドラインをエディタで編集・日本語入力
最新版MozEx(1.9.5)ならば日本語も編集できる
MozExの最新版ならばエディタで日本語を書くこともできる。
ただし、文字コードをUTF-8にしないと
http://www.rubyist.net/~rubikitch/images/mozex.error.jpg
のようなエラーが出るので注意!!
ていうか、textareaではなくてinput type=textな行編集もしたいんだけどどうすればいいんだよ。