ということでちょっと調べてみた。
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"}
関数定義
こんな感じ。function Foo() echo "foo" endfunction
コマンドラインから実行すると以下のようになる。
:call Foo() foo
同じ関数名を定義するにはfunction!を指定する
function! Foo() echo "foo" endfunction
スコープ
関数内で有効なローカルスコープ l:、スクリプトファイル内で有効なスコープ s:、グローバルで有効なスコープ、 がよく使う。こんな感じ。
function! s:Foo() let l:foo = "foo" echo foo endfunction call s:Foo()
Pythonインターフェース
vimscriptではPythonを使用することが出来ます。まずは使用できるかどうかの確認。
echo has("python") 1 echo has("python3") 1であればpython2もpython3も両方使えます。
ではvimscriptで実際にpythonを使用してみます。
function! s:Foo() python3 << EOM print("foo") EOM endfunction call s:Foo()このような形で使用します。
外部ファイルを実行する際は:pyfileコマンドを使用します。
map
基本的なコマンドについては知っているので割愛。インサートモードにおいて、関数の評価結果から入力文字列を挿入させるためには<expr>を使用する。
inoremap <expr> <c-x> Foo()
command
コマンドモードから実行できるコマンドを定義する。名前の戦闘は大文字である必要がある。
command! Foo :call Foo()
詳しくは help :command-args を参照。
vimscriptの組み込み関数
機能別に分類してあるヘルプは以下で見れる。:help function-list
アルファベット順は以下
:help functions
ということで最後の方はだいぶ適当になったけど、これで最低限vimscriptが読めるように
なった気がします。
あとは色々見たり作ったりしながら覚えていこうかと思います。
0 件のコメント:
コメントを投稿