2014年5月8日木曜日

vimscript書いてて詰まったところのメモ

pyfileで引数を渡す方法

pythonであれば
python sample.py test
という形で実行するがvimではpyfileでpythonファイルを実行できるが、以下の様なやり方ではダメ。
pyfile sample.py test
こうではなく、以下の様にして引数を渡す
:python import sys
" pythonではsys.argvの0番目はスクリプトのファイル名
:python sys.argv = ["sample.py", "test"]
:pyfile sample.py
こうすると想定どおりに引数がpython側で受け取れる。

python側でvimで定義した変数を受け取る

vimscriptの変数をpython側で受け取るにはvim.evalを使用する。
let tmp = "Test"
python << EOM
import vim
print(vim.eval("tmp"))
EOM
こんな感じ

vimでの文字列連結

文字列連結でつい"sample"+"test"とか書きがちだが、.(ドット)でつなげる。
let a = "sample"
let b = "test"
echo a.b

ユーザ定義commandの引数を関数に渡す

<f-args>を使う。
詳細は:h <f-args>で。

Gvimかどうかの判定

has("gui_running")でできる
echo has("gui_running")
1

こんな感じかな。
とりあえず今日一日触ってつまったところをメモした。
初心者過ぎて泣けるな。。。
vimpluginを書くときはまず、:h vim-scriptと:h write-pluginあたりを読むほうがその後が楽だなと思った。

0 件のコメント:

コメントを投稿