これは便利! vimでPythonスクリプトをそのまま実行 (再)
id:a2c さんのエントリ
http://d.hatena.ne.jp/a2c/20081026/1224981769
にid:ka-nachtさんがコメントしてた。
nnoremap <silent> <C-p> :<C-u>execute '!' &l:filetype '%'<Return>
でも同じことができるらしい。
id:ka-nachtさんのVimスクリプトの方が理解し易そうだったので
http://www.lingr.com/room/vim-users.jp
で本人に質問しつつ解読してみた。
:<C-u>execute '!' &l:filetype '%'<Return>
について考えてみる。
最初
:h <C-u>
ってやってたんだがヘルプが見つからない。次に
:h ^U
なら行けることを教えてもらったが、この場合command-line modeなるもののコンテキストなので
:h c_^U
とせねばイカンと更に教えてもらった。(特に指定が無いとnormal modeの動作についてのヘルプが表示されるらしい)
次に詰まったのが
&l
と
%
の意味なんだが普通に:h のあとにこれらの記号を付けてもヘルプは発見できない。そこで
:help expr-option :help :_%
とすりゃいいことをまた教えてもらう。
ここまでで得られるヘルプの情報をまとめてvimスクリプトの翻訳を試みると
もしhoge.pyというプログラムをvimで開いているとすれば、
:現在のカーソル位置から行頭まで消して以降をシェルコマンドとして実行せよ。
python hoge.py そしてEnter
って感じであろうか。
id:ka-nachtさんとid:a2cさん、多謝
[追記]
以下のエントリで
http://nyaos.org/d/?p=%282008.11.01%29#p2
で紹介くださっているように
:filetype on
してないと使えませんのでご注意ください。
[さらに追記]
これエラーった時のメッセージもっかい見るのどうすればいいんだろう...