概要
Vimscriptに親しむため、少し関数で遊んでみる。
内容
環境
macOS Catalina
VIM - Vi IMproved 8.1 macOS version Normal version without GUI.
今回は基本的に、外部ファイル記述保存し、vim起動後、:call
で実行する。
Hello, world
基本的に、ユーザ定義関数は、大文字から始めるか、s:
を付けないといけない。
hello.vim
function Hello()
echo "Hello, world"
endfunction
:so hello.vim
:call Hello()
output
Hello, world
今回は、:
からcall
しているので、s:
は使いにくい。
引数を扱う
hello.vim
function Hello(...)
echo a:0
echo a:1
echo a:2
for s in a:000
echon ' ' . s
endfor
endfunction
:so hello.vim
:call Hello("Hello,", "world")
output
2
Hello,
world Hello, world
a:0
:引数の個数
a:自然数
:n番目の引数
a:000
:引数のリスト
(echo
:多分改行コードとともに;echon
:改行コードを加えたりはしない)
コマンドから呼び出せるようにする
毎回call ~ ()
を入力するのは大変なので、コマンドで呼び出せるようにする。
hello.vim
function Hello()
echo "Hello, world"
endfunction
command SayHello call Hello()
:so hello.vim
:SayHello
output
Hello, world
蛇足
コマンドで呼び出す場合、s:
も使える。
hello.vim
function s:hello()
echo "Hello, world"
endfunction
command SayHello call <SID>hello()
:so hello.vim
:SayHello
output
Hello, world
トラブルを避けるため、呼び出し時はs:
の代わりに<SID>
を使うと良いとのこと。
参考にさせていただいた本・頁
感想
楽しい。
今後
少しずつできることを増やしていきたい。