第3回Vimスクリプト入門みたいの(変数その2)

" usr_41.txt  vimスクリプトの書き方から
" 「41.2 変数」より
"
" 今日は前回予告したとおり、:unlet を使って変数を削除してみる。
" まず、前回の初めに使ったサンプルをいじってみる。
" 最後の行に :unl[et] を追加した。きっと常に1が出力されるはずだ。
"

if !exists("s:cnt")
  let s:cnt = 0
en
let s:cnt = s:cnt + 1
ec s:cnt
unl s:cnt

" いつものように
" :so % 
"
" 正常に動作する。じゃあ次は、わざとエラーを出してみる。
" ドキュメントによると、変数がない状態で :unlet をかけるとエラーが出るらしい
" :unl! とすればエラー無視ができるらしい。
" 

unl s:cnt

" 予想どおりのエラー

unl! s:cnt

" 特になにも起きない。
"
" とりあえず :unlet には ! をつけておいたほうがいいかもしれない。
" この章の残りは文字列の変数についてだけど、
" ありがちな文字列定数と同じだと思う。
" 'だとエスケープシーケンスがきかない。
" "だとエスケープシーケンスがきく。
" "の中で'を使用可能。
" 'の中で"を使用可能。
" "の中では\"を使用可能。
" あとは \<Esc> みたいな表記ができるくらいで特に違和感はなさそう。
" ついでに文字列の結合は . という演算子を使うぽい。
"

ec 'fuga' . 'hoge'

" こうすると fugahoge となる
" 
" もうすこし、ためしてみる

if !exists('s:cnt')
  let s:cnt = 0
en
ec 'fuga' . s:cnt . 'hoge'
let s:cnt = s:cnt + 1

" 数字の結合も簡単にできる。まぁ当然か。
"
" なんか半端な感じだけど、今日はここまで。
"
" 今日のまとめ
" :unl[et][!] {var-name} ...
" 
"
" あ、複数削除もできるみたいね。まぁ試さなくてもいいよね。
"