Thursday 15 November 2012

TextmateからVimに切り替えます

今までコマンドやショートカットを憶えられないからという理由でGUIのテキストエディターであるTextmateを使ってきましたが、もっとコードを書く効率を上げたい動機が切迫してきたのでVimに切り替えます。

だんだんと、調べ物をしている時間や実験でコードを書いている時間の方がプロダクションのプログラムを書いているよりも圧倒的に多くなってきました。で、実際もっともっと調べものをする時間を増やしたいので、できるだけ書く時間を短くしたいと感じています。ので、一つの手段としてVimを導入する事にしました。
$ vimtutor
でチュートリアルが走るので、同じく初めての方はここから始めてみてください。 チュートリアルは全部で7章あります。チュートリアルの内容はあくまで覚えようとするのではなく実際にやってみて体で覚えていくようにとのことです。なんだか職人っぽいん学習方法ですね。

チュートリアルで出てきたコマンドは下の通り。

第1章

  • h --> 左へカーソル移動
  • j --> 下へカーソル移動
  • k --> 上へカーソル移動
  • l --> 右へカーソル移動
  • :q! --> vimの終了 (quit)
  • x --> カーソルの下の文字を削除
  • i --> テキストを挿入 (insert)
  • A --> 行の最後にテキストを挿入 (Append)
  • :wq --> ファイルをセーブして終了
第2章
  • dw --> 次のワードまで削除 (delete)
  • d$ --> 行の終わりまで削除
  • d + motionでいろいろな削除ができる。motionの例は下のとおり
  • 0 --> 行の先頭に移動
  • w --> 次のワードの先頭に移動 (word)
  • e --> 次のワードの最後に移動 (end of word?)
  • $ --> 行の最後に移動
  • d + number + motion --> numberで指定しただけ削除が行える(例えば d10wなど)
  • dd --> 一行削除
  • u --> 元に戻す (undo) 
第3章

  • p --> 張りつけ(paste)
  • r --> カーソルの下の文字を置換 (replace)
  • c --> 文字の置換 (change)。例えば c10 で現在のカーソル一から10文字を削除して文字列を挿入(insertモード)。
第4章
  • CTL-G --> 現在のファイルの情報と現在のカーソルの位置情報を表示
  • G --> ファイルの一番最後へ移動 (Go?)
  • gg --> ファイルの先頭へ移動
  • number + G --> number行目へ移動
  • / --> 検索。/文字列のように使用。nで次の候補を検索、Nで前の候補を検索。
  • ? --> /とは反対の方向に検索
  • CTL-O --> 前にいたカーソルの位置に移動
  • CTL-I --> 次のカーソル位置に移動
  • % --> 対応する括弧に移動 ({[()
  • :s/old/new --> "old"を"new"で置換 (substitute)(最初の候補だけ置換される)
  • :#,#s/old/new --> #で指定した行の間の文字列を置換
  • :s/old/new/g --> 行内の全ての候補を置換
  • :%s/old/new/g -->  ファイル全部の文字列置換
  • :%s/old/new/gc --> 上の動作をそれぞれの候補ごとに対話式で置換
第5章
  • :! cmd --> シェルコマンドを実行。例えば :!ls など
  • v motion --> 文字列を選択 (visual selection)。選択した文字列に対してもコマンドを実行できる (例えば:w FILENAME 選択した部分のみをファイルに保存)
  • :r FILENAME --> ファイルの内容を現在のドキュメントに挿入 (read?)
  • :r !cmd --> シェルコマンドの返り値を現在のドキュメントに挿入。例えば :r !ls など
第6章
  • o --> 現在のカーソル位置の下に新しい行を挿入してinsertモードに移る 。Oでカーソルの位置に行を挿入
  • R motion --> 現在のカーソル位置から motion で指定しただけ文字列を削除し、insertモードに移行<ESC>で編集を終了。(Replace)
  • y --> 文字列をコピー (yank)。vで文字列を選択してyでコピー。
  • :set ic --> 文字列検索時に大文字、小文字を区別しない (ignore case)
  • :set noic --> 文字列検索時に大文字、小文字を区別
  • :set hls --> 検索候補の文字列全てをハイライトする (highlight search)
  • :set nohld --> hlsを解除
第7章
  • :help --> ヘルプを表示
  • CTL-W s --> 上下に画面を割って新しいウィンドウを作成
  • CTL-W v --> 左右に画面を割って新しいウィンドウを作成
  • CTL-W CTL-W --> ウィンドウを移動
  • CTL-D --> 候補のコマンドを表示。例えば :e CTL-Dで"e"で始まるコマンドの候補を表示<TAB>で次の候補に移動
ドキュメント外
:e FILENAME --> ファイルを開いて編集 (edit)



そういえばHTMLを勉強し始めた2年半前にはMac標準のテキストエディタでは使いにくかったのでTextWranglerを使い始め、CodaがいいよっていうことでCodaにZenCodingを入れて使いました。Railsを使い始めた1年前ぐらいの段階でTextmateを紹介してもらい、今やっとVimに移行です。さて、使いこなせるかな…。

No comments:

Post a Comment