第1回Vimスクリプト入門みたいの
" usr_41.txt vimスクリプトの書き方 「41.1 はじめに」より :let i = 1 :while i < 5 : echo "count is " i : let i = i + 1 :endwhile " ここまでファイルに書いたら、保存して " :source % " で実行してみる。なるほど、全部コマンドなわけね。 " :help で調べろってことね。 " " :help :let " :let {var-name} = {expr1} " と似たようなのが三つ、四つでた。変数うんぬんの話でちょい面倒くさい。 " まず間違いなく変数のスコープの話だから、読めばわかるだろうけど今はパス。 " 代入するときは let をつけろってことで、丸暗記。 " " :help :while " :wh[ile] {expr1} " :endw[hile] " 動作的には C と同じぽい。 " 省略ができるぽいので次からは遠慮なく省略。 " :help も :h[elp] だから :h にしていくね " " :h :echo " :ec[ho] {expr1} " よーわからんが「<EOL>までガンガン出力するぽよ」ってことらしい。 " " あとvimスクリプト中の : は省略できるらしいので、これまた遠慮なく省略。 " " おーし、ここまでの内容から、 " 0 から 9 まで出力してみる。 let i = 0 wh i < 10 ec i let i = i + 1 endw " 動いた!やったね!……なんて喜ぶとでも思ったか、バカ野郎。 " 条件分岐、条件分岐が足りん。というわけで、それっぽいのを探してみる。 " " :h :if " :if {expr1} " :en[dif] " キター!これまた動作は C と同じぽい。いける。 " ついでに、そのすぐ下にあった " :el[se] " :elsei[f] {expr1} " もいただき。 " " 条件文を追加して、もう一個作ってみる。 " 0 から 10 までの奇数を出力する。 let i = 0 wh i < 10 if i % 2 == 1 ec i en let i = i + 1 endw " さらになつかしの FizzBuzz だ let i = 1 wh i <= 100 if (i % 5 == 0) && (i % 3 == 0) ec "FizzBuzz" elsei (i % 5 == 0) ec "Buzz" elsei (i % 3 == 0) ec "Fizz" el ec i en let i = i + 1 endw " なぜか直感で書いた " i % 2 == 1 " やら " (i % 5 == 0) && (i % 3 == 0) " が動いている気がするが、そこはVimのナニやらアレやらが寛大だからだろう! " 今日もおれは救われた。ありがとうVimmy! " " 今日のコマンド一覧 " :h[elp] " :let " :wh[ile] {expr1} " :endw[hile] " :ec[ho] " :if {expr1} " :en[dif] " :el[se] " :elsei[f] {expr1} "