Vim script
にconst
が実装されたので早速試してみた備忘録です。
こちらのポストで実際にパッチを書かれたりんだんさんが詳しく解説されているので、ちゃんとした情報が知りたい方は上の記事をご参照ください。
以下は個人的な備忘録となります。
最新のVimをDocker上で動かす
気軽に試してみたいときDocker
は便利ですよね。
手前味噌で恐縮ですが、最新のVimを動かせるDockerファイルがあるので、これを使います。
下記の通りにコマンドを実行すれば、最新のVimが試せます。
# セットアップ git clone https://github.com/shinshin86/vimrc-dev-starter-kit-at-docker.git cd vimrc-dev-starter-kit-at-docker docker build -t vimrc-dev . docker run -it --rm --name vimrc-dev-01 vimrc-dev /bin/bash
これらを実行すると、Docker上で動く最新のVimにつながるはず。
vim --version VIM - Vi IMproved 8.1 (2018 May 18, compiled Jun 20 2019 14:00:12) (以下省略)
vimを起動させたら早速試してみる。
vimscript の const ことはじめ
const
で宣言できるようになっている。
例えばVim
の変数代入ではlet
を使うが、今までは下記のように使用することが可能。
" test.vim let a = 42 echo a let a = "test" echo a
vimを立ち上げて、:source test.vim
と実行すると、
42
test
と表示される。
今度はconst
を使って下記のように書いてみると、
" test.vim const a = 42 echo a const a = "test" echo a
E995: Cannot modify existing variable
というエラーが表示される。
(ちなみに以前のvimだったらconst
を使うとE492: Not an editer command: const number = 42
と表示される)
今度は下記のようにして実行してみると、
" test.vim const a = 42 echo a let a = "test" echo a
E741: Value is locked: a
というエラーが表示される。
変数破棄を行うunletで試す
" test.vim let a = 42 echo a unlet a echo a
unlet
は変数の破棄を行うコマンドなので、上のscriptを実行すると5行目で E121: Undefined variable: a
となる。
" test.vim const a = 42 echo a unlet a echo a
let
をconst
に変えてもここの挙動は変わらないよう。
本当はもっといろいろと試したいのだけど、眠くなってきてしまったので、ここまで。
普段からjs
触っている身としては、let
ではなく const
使えるのは嬉しい。