赤ペン先生

ktkr 。 http://d.hatena.ne.jp/eclipse-a/20080612/1213240781 で tabshift.vim ( http://d.hatena.ne.jp/janus_wel/20080517#1213213335 ) を id:eclipse-a に添削指導してもらった。んだけど日付がおかしいのは諸事情があってこれを書いてる日が 6/15 だからです。ということで。

とりあえず返事。

  1. どうして変数にプリフィックスaがついているのか
  2. どうして数字確認に正規表現を使わないのか
  3. どうしてexecuteコマンドの引数を文字列結合しないのか
  4. どうして/が効かないのか
84 tabshift.vim (8-1) tabshift.vimを好き勝手改造してみた - くふんを狙え

1 番は変数のスコープについてよくわからなかったのでとりあえず関数内に限定されると書いてあった a をつけた形。で、他の関数内宣言の変数については :help variable の最初だけ読んだら基本変数はグローバルって感じで書いてあったのと :help internal-variables の prefix の表であー何かを最初につければいいのねって理解でいっちゃった感じ。 let / unlet と set / unset が似てるのと bat ファイルの変数がグローバルなのもこの誤解に拍車をかけたかも。って今ちゃんとみたら a は function arguments って書いてあった。そら関数内限定だわ。

2 番はぶっちゃけ正規表現があることを知らなかった。いや気づいてもよさそうなもんだけど文字列を評価した際に数字があれば真になるとか書いてあったのでじゃあそれでいいやと思って済ましちゃった形。

3 番に関しては tabmove に関しては最初 tabmove position ( position は移動先を格納した変数 ) でいくだろと思ったんだけど「余分な文字が後ろにあります」とか怒られて正直どうしようもなくて検索しまくってたら execute なんてものがあることを知ってそれで動いたので力尽きた形。変数展開してくれないのに心底しょんぼりした。

4 番はいまだにわからない。ただ を区別しない処理系もあると前に一生懸命探した時に読んだ気もする ( 今探してみても見つからない。夢かも ) ので windows がその処理系にあたる…のか ? ちなみにプラグインは tabshift 以外いれてない。

とりあえず指摘してもらった感じに直して ( ていうか丸パクリ ) 上げなおしたよ !! vimrc に直書きするのもなんかアレな気がしたので plugin のままで。

http://www012.upp.so-net.ne.jp/legio/distribute/tabshift.vim

さいごにありがとう、 id:eclipse-a