vimをどうしても使わなければならない場面がたまにあり、そのたびに調べたりしているので書いておこうかと思います。
Vimのバージョン
vimにはバージョンがありバージョンによっては矩形挿入が使えなかったりするそうです。コンパイル時に決まるVimの種類は、下記の5つがあります(上に行くほど機能が制限されている)
- tiny
- small
- normal
- big
- huge
矩形挿入が使えるのはnormal以上のもの(normal, big, huge)です。
Vimのモード
vimにはノーマルモード、入力モード、ビジュアルモードがあります。起動時はノーマルモードになっています。iをおすと入力モードに移行します。またノーマルモードに戻るにはescキーを押します。ビジュアルモードに移行するにはvをおします。ノーマルモードに戻るにはescキーを押します。
それぞれのモードで役割が違います
| ノーマルモード | おもにコマンド操作を行う |
|---|---|
| 入力モード | テキストの入力をおもに行う |
| ビジュアルモード | 複数行の選択など |
モードの切替方法
でつくしてはいると思いますが書いておきます。
| ノーマルモードに移行 | esc |
|---|---|
| 入力モードに移行 | i |
| コマンドモードに移行 | : |
Vimのコマンド
保存や終了
| :w | 上書き保存 |
|---|---|
| :w filename | 新しいファイルで保存 |
| :q! | 保存せずに終了 |
| :wq | 上書き保存して終了 |
| :e filename | 他のファイルを開く |
移動系
| gg | 最上部へ移動 |
|---|---|
| G | 最下部へ移動 |
| ctfl+f / ctrl+b | 画面単位の移動 |
| w or e / b | 単語単位の移動 |
| ^ / $ | 行頭か行末へ移動 |
| f → char | 検索移動 ;セミコロンをおすと次に検索対象に移動(行で有効) |
| % | かっこの上でおすと対応している閉じかっこまで飛ぶ |
挿入
| o | 現在の行の下に空白行を追加して挿入モードを開始 |
|---|---|
| O | 現在の行の上に空白行を追加して挿入モードを開始 |
コピーや切り取り、貼り付け
| x | 1文字単位の切り取り |
|---|---|
| dd | 1行カット |
| 3dd | 3行カット |
| yy | コピー |
| 3yy | 3行コピー |
| p | 貼り付け |
検索
| / | 検索 |
|---|---|
| n/N | 下方向と上方向 |
| */# | 今あるカーソルの単語を下方向と上方向 |
置換
置換のスラッシュは実際に入力します
| :s/state/State | 置換 |
|---|---|
| :s/i/I/g | 行全体を置換 |
| :%s/i/I/g | 全部を置換 |
| :%s/i/I/gc | 確認を求める |
undo redo
u undo 元に戻す
ctrl+r redo やりなおし
画面分割
:sp 縦方向に分割
ctrl+w w 画面推移
close 分割終了
タブ
:tabnew タブの作成
gt タブの移動
:tabclose タブを閉じる
vi -p file1 file2 タブで開く
ビジュアルモードのコマンド
shift + v 行単位
ctrl + v 矩形選択
その他
. 直前の操作を繰り返す
Vimのカスタマイズ
- vimをカスタマイズするには.vimrcというファイルを作成する
- .vimrcを作成する場所は → /home/[ユーザーネーム]
vimのkeyマップを編集する例。キャンセルキーをCtrl + jに変更する
imap <C-j> <esc>キーマップの書き方
| <Up>> | 上カーソル |
|---|---|
| <Down> | 下カーソル |
| <Left> | 左カーソル |
| <Right> | 右カーソル |
| <S-Up> | シフト + 上カーソル |
| <S-Down> | シフト + 下カーソル |
| <S-Left> | シフト + 左カーソル |
| <S-Right> | シフト + 右カーソル |
| <C-Left> | コントロール + 上カーソル |
| <C-Right> | コントロール + 上カーソル |
| <F1> – <F12> | ファンクションキー1から12 |
| <S-F1> – <S-F12> | シフト + ファンクションキー1から12 |
| <Help> | ヘルプキー |
| <Undo> | アンドゥキー |
| <Insert> | 挿入キー |
| <Home> | ホーム |
| <End> | エンド |
| <PageUp> | ページアップ |
| <PageDown> | ページダウン |
| <kHome> | テンキーのホーム(左上) |
| <kEnd> | テンキーのエンド(左下) |
| <kPageUp> | テンキーのページアップ(右上) |
| <kPageDown> | テンキーのページダウン(右下) |
| <kPlus> | テンキーの+ |
| <kMinus> | テンキーの- |
| <kMultiply> | テンキーの * |
| <kDivid> | テンキーの / |
| <kEnter> | テンキーのEnter |
| <kPoint> | テンキーのピリオド |
| <k0> – <k9> | テンキーの0から9 |
| <S-…> | シフトキー |
| <C-…> | コントロールキー |
| <M-…> | altまたはmetaキー |
| <A-…> | メタキーと同じ |
| <D-…> | コマンドキー (Macintosh のみ) |
| <t_xx> | termcapで”xx”エントリを持つキー |
簡易チートシート
簡易Vimチートシート
keymap設定例のとこだけミスあり。

コメント