vim
2010/05/30 K. T.
vimメモ
初心を侮ることなかれ。vimを制するものは、、、、
<dd> 1行切り取り <ndd> n行切り取り <yy> 1行コピー <nyy> n行コピー <p> 指定行の次の行へ貼り付け <P> 指定行の前の行へ貼り付け <^> 文頭へ移動 <$> 文末へ移動 <ctr + d> 下へスクロール <cdr + u> 上へスクロール <shift + ↑ or ↓> スクロール <:w> 保存 <:w ****.csv> 名前をつけて新規保存 <:w!> 上書き保存 <:q> vim 終了 <:q!> 保存せずにvimを終了 <:wq> 保存して終了
置換したい場合
例) aをbに置換する。
<:%s;a;b;gc>
g : 1行に2個以上の場合も置換。c : 置換する際、確認をする。
vimの真髄(玄人編)※ここまで使えるとVIM使いとして認定される。
- vimには、挿入モードとコマンドモードとヴィジュアルモードの3種類がある。それぞれのモードを使いこなすことにより、すばらしい機能が使えるようになり、windowsのメモ帳や、メール作成で文章を打つのが苦になるだろう。
0.各モードの切り替え方
デフォルトの状態は、コマンドモードである。
- コマンドモード
- Esc をとにかく押すと切り替わるのがコマンドモードである。困ったらEscを押すくらいに思っているとよい。(本当は一回押せばよい)。
- コマンドモードは、非常に沢山の操作が可能である。があまりにも多いのでここでの紹介は省略する。
- コマンドモードでは、キーボードの矢印キーを使うのはスマートではない。h: 左、j: 下、k: 上、l:右 を使って移動を行う。(上達したければとにかくこの方法に従う)
- 挿入モード
- コマンドモードから挿入モードに切り替えるには、i とか a とか o とか O とか色々ある。玄人はこの挿入モードへの入り方にすごく気を使う。
たとえば、
今いる位置から書きはじめたいときは、i
今いる位置より一文字先から書きはじめたいときは、a
今いる行の文末から書きはじめたいときは、A
今いる行より下の行から書きはじめたいときは、o
今いる行より上の行から書きはじめたいときは、O
※なぜこんな面倒なことをするのかについて興味が出た人は、vim使いの1歩目を踏み出したことになる。
- ヴィジュアルモード
- あまり使用したことがない人も多いのがこのモード。このモードを使いこなすと、コピペが楽になる。
- ヴィジュアルモードでも、キーボードの矢印キーを使うのはスマートではない。h: 左、j: 下、k: 上、l:右 を使って移動を行う。(上達したければとにかくこの方法に従う)
- コマンドモードからヴィジュアルモードに入るには、何パターンかある。
vを押すと文字単位で範囲指定可能なヴィジュアルモードに切り替わる。
shift + vを押すと、行単位で指定可能なヴィジュアルモードに切り替わる。
Ctl + v を押すと、矩形単位で範囲指定可能なヴィジュアルモードに切り替わる。
それぞれで範囲指定した後、y によるコピー、dによる切り取りが可能になり、 p を押すと貼り付けができる。
1. <Ctl> + wで編集ウィンドウを自在に操れ!
- <Ctl> + w の後に v を押すと、windowが左右に分割される。
- <Ctl> + w の後に s を押すと、windowが上下に分割される。
- <Ctl> + w の後に w を押すと、編集対象のwindowが変わる。
- 各windowを閉じたいときには、編集対象のwindow上でいつもどおり、「:wq」とか「:q!」とかすればよい。
- 各windowごとに別のファイルを開きたい場合、「:edit <ファイル名>」とすれば編集できる。
2. 「.」による繰り返し機能を極めろ!
何気なく、挿入モードとコマンドモードを切り替えているが、この切り替えには大きな意味がある。 たとえば、
1. vim を起動する。※コマンドモード
2. iとかを押して、挿入モードに切り替える。
3. 編集が終わったらEscを押して、再びコマンドモードに戻る。
これだけ見るとなんてことはない操作に見える。しかしここで魔法のコマンドを打ってみる。
4. 「. (ドット)」を一回打ってみてほしい。
すると、先ほど挿入モードで実行した結果が繰り返されていることに気づく。(ここで痺れた人はvim使いに2歩近づく)
つまり、コマンドモード -> 挿入モード -> コマンドモードのサイクルでの編集内容を、vimは記憶しており、 「.」を押すことで、まったく同じ編集を実行してくれる。
さらにさらに、「5.」と押してみると、5回同じ編集をしてくれる。
鋭い人は気づいたかもしれないが、コマンドモード -> 挿入モード -> コマンドモードを実現するためには、 挿入モードへの入り方が非常に重要となる。どんな入り方をするかによって、「.」で繰り返される内容が 変わってくるためである。結構慣れが必要なので色々と試してみてほしい。
Keyword(s):
References: