2012/11/19


Twitter / kanonji

vimでカーソルキーを使うと稀に発生する「E349: No identifier under cursor」がうざい。ググっても、このエラーメッセージの翻訳定義ばかり出てくるなぁ。TERM=ansiにすると出ないというブログエントリーは有ったけどxterm-colorがいいなぁ

https://twitter.com/kanonji/statuses/270488019499356160
アレっと言っても、僕はカーソルキー使わないから発生しないんだけど、調べてみた。
まず E349 を調べる。
# grep E349 *.c
normal.c:static char *e_noident = N_("E349: No identifier under cursor");
E349 は e_noident という変数を使って発生させている。e_noident は同じく normal.c の中で2箇所から参照される。どちらもカーソル下のキーワードを探す際にキーワードとなり得る物が見つからなかった場合に発生する。
試しに「-」という文字だけタイプしてその上で K (辞書を引くキー)をタイプすると、E349 が発生する。
さて、ここでなぜ「vimでカーソルキーを使うと E349 が稀に発生する」のか。
terminfo によると xterm ではカーソルキーの左 kl は \E[D に割り当てられており、:echo getchar() によると vim ではシフトキーを押しながらカーソルキーの左を押すとこの \E[D が投げられる。

http://www.nethamilton.net/docs/termcap.html
http://linux.die.net/man/5/termcap
このキーシーケンスは xterm-color には登録されていないので
      ESC
      [
      D
の順に流れる。:help [D を見ると [D          Display all macro definitions that contain the macro
            under the cursor.  Filenames and line numbers are
            displayed for the found lines.  The search starts
            from the beginning of the file.  {not in Vi}
マクロを検索している。つまりカーソル直下のキーワードを探索しているのだ。
ゆえに、E349 が出るという事になる。
Posted at by



2012/11/06


basyura さんが vimproc 使ったやつを書いてたのを、アプリっぽく仕上げただけ
vim で stream api - basyura!Cs blog
http://d.hatena.ne.jp/basyura/20121104/p1
githubに置いてます。vimprocが必要。
mattn/streamer-vim - GitHub
https://github.com/mattn/streamer-vim
:Streamer と起動すると、vimproc を使ってバックグラウンドでtwitter streamを取得し、タイトルバーに表示します。
ポーリングなのでもしかすると若干の負荷があるかも...という感じはしますが、updatetimeを使うハックよりは僕にとっては精神衛生的に好きです。
Posted at by



2012/11/05


Sublime Text2 の複数カーソル、なんかキャッチーだけど、それ Sakura でずいぶん前から出来てたし...。
Vim 使いは正規表現で一括置換するのでそもそも必要ない。

とかいうと「それ実装できない言い訳じゃん」とか言われそうなのでかるーく作ってみた。(実装中途半端)

mattn/multi-vim - GitHub
https://github.com/mattn/multi-vim
なんですか!そのやる気のないプロジェクト名は!!!

どんな風に動くかはこちらのページをご覧下さい。(デカいアニメーションgif注意)
http://mattn.github.com/multi-vim/
http://mattn.github.com/multi-vim/
作り続けられる自信があまりありません。
Posted at by