vimscriptについて

Posted on 2014年05月11日(日) in articles • Tagged with vim

vim pluginを開発したいと考えているが、まずはvimscriptについて知らないといけない。

ということでちょっと調べてみた。

http://mattn.kaoriya.net/software/vim/20111202085236.htm

この記事が素晴らしすぎたので、こっちを読むとよいと思います。

あとこことか

http://vim-users.jp/2010/04/hack136/ http://vim-jp.org/tips/start_vimscript.html

とりあえず、備忘録的にやったことを残しておこうと思います。

変数宣言

こんな感じ。

" 数値
let foo = 1
" 文字列
let foo = "bar"
" リスト
let foo = ["foo", "bar"]
" 辞書
let foo = {"bar": "bar"}

関数定義 ...


Continue reading

vimscriptを書いてて、詰まったところ

Posted on 2014年05月11日(日) in articles • Tagged with vim

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"とか書きがちだが ...


Continue reading