viメモ
vi Commands
| [基本] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| :q | :q! | viを終了/強制終了する | ||
| :w | :w! | 保存/強制保存する | ||
| ZZ | =:wq | |||
| u | ^ r | Undo/Redo | ||
| . | 編集を再実行(ドット) | |||
| Esc | コマンドモードに戻る | |||
| i | a | 直前/直後からテキスト挿入モードに入る | ||
| x | X | Del/BS(=dl/dh) |
| [テキスト挿入] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| i | a | 直前/直後にテキスト挿入 | ||
| I | A | 行頭(large i)/行末からテキスト挿入 | ||
| o | O | 上下を改行してテキスト挿入 |
| [書き換え] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| r | R | 1文字を変更 /書換えモードで入力 | ||
| s | cw | C | c5l | カーソル位置の1文字/1単語/1行/5文字をEscを押すまで書換え |
| 大文字と小文字を入れ替え |
| [削除(cut)] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| x | X | Del/BS(=dl/dh) | ||
| dd | dw | 行/単語を削除 | ||
| d% | 対応するカッコまで又は前の(までを削除 | |||
| d$/D | カーソル位置から行末まで削除 | |||
| df# | カーソル位置から#までを削除 |
| [カーソル移動] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| h/BS/← | l/SPC/→ | k/↑ | j/Enter/↓ | 左右上下に1文字移動 |
| w | b | 前後の単語に移動 | ||
| W | B | 前後のスペース区切りの単語に移動 | ||
| e | 単語の末尾に移動 | |||
| 0/^ | $ | 行頭/行末に移動(zero) | ||
| 1G/gg/:1 | G/:$ | nG/:n | 文書の先頭/末尾/n行目に移動 | |
| H | L | M | 画面の最上/最下/中央行に移動 | |
| ^f | ^b | 次/前の画面に移動(^=Control) | ||
| ^d | ^u | 半画面スクロールダウン/アップ | ||
| ^e | ^y | 1行スクロールダウン/アップ | ||
| f* | ; | 行内の*を検索/再実行 | ||
| mx | 'x | マークxをつける/マークxに移動 | ||
| '' | `` | ジャンプする前の行/位置に移動 | ||
| zz | 現在行が中心にくるようにスクロール | |||
| z{Enter} | 現在行が最上部にくるようにスクロール | |||
| } | { | 次/前の空行に移動 | ||
| ]] | [[ | 次/前の関数(クラス)に移動 |
| [コピー/ペースト] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| yy | yl | yh/yb | yw | 行/カーソルの文字/後ろの文字/単語をコピー |
| #yy | y#l | 下#行/右#文字をコピー | ||
| p | P | 後方/前方にペースト | ||
| xp | カーソルの文字と右の文字を入れ替え | |||
| "add | "byy | "cp | バッファa/b/cに1行をcut/copy/paste |
| [文字列検索] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| /word | ?word | 末尾/先頭方向へwordを検索 | ||
| n | N | 直前の検索を順/逆方向に繰り返す | ||
| [行指定]s/word1/word2[/g] | word1をword2に置換 $=最終行 %=全行 行指定がなければ現在行 置換 gがあれば行中複数置換 | |||
| * | # | カーソル位置の単語を順/逆方向に検索 |
| [Undo/Redo] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| u | ^r | Undo/Redo | ||
| . | 編集を再実行 |
| [":"コマンド] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| :r[File] | ファイルを読み込む | |||
| :w | :w! | :q | :q | 保存/強制保存/終了/強制終了 |
| :e [File] | 指定したファイルの編集 | |||
| :a [File] | 指定したファイル内容を挿入 | |||
| :n | :N | 次の/前のファイルに切り替え | ||
| :set | :set all | 設定した値/全設定を表示 | ||
| :set [no]nu[mber] | 行番号表示/非表示 | |||
| :set [no]autoindent | :se [no]ai | 自動インデント有効/無効 | ||
| :set [no]ignorecase | :se [no]ic | 検索・置換の大文字小文字を無視/有効 | ||
| :set tabstop=n | :se ts=n | タブをn文字にする | ||
| :set [no]list | 不可視文字を表示/非表示 | |||
| :set wm=5 | 右マージンから5スペース目で行をラップ | |||
| :%!sort | 全ての行に対してsortコマンドを実行 | |||
| :!ls | lsコマンドの結果を表示 | |||
| :e ++enc=EUC-JP :e ++enc=Shift-JIS :e ++enc=UTF-8 |
文字コードを指定して開き直す | |||
| :set fileencoding=euc-jp | :set fenc=euc-jp | 保存時の文字コードを指定 | ||
| :set fileencodings=iso-2022-jp,shift-jis,euc-jp,utf-8,UTF-8,UTF-7,UTF-16,ucs-2-internal,ucs-2,japan | 読込時の文字コードを指定。先頭から試す | |||
| :colorscheme [scheme] | 色セットを指定 |
| [Window(vim)] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| :sp[lit] [File] | :vs[plit] [File] | 指定したファイルをウィンドウを横に/縦に分割して開く | ||
| ^ww | 次のウィンドウに移動 | |||
| ^ws | 現在のファイルを分割 | |||
| ^wn | 新規ファイルで分割 | |||
| ^w+ | 幅を増やす | |||
| ^w- | 幅を減らす | |||
| :qa | 全て終了 |
| [範囲指定] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| v | 範囲指定 | |||
| V | 行単位で範囲指定 | |||
| ^v | 矩形選択 |
| [その他] |
| Cmd.1 | Cmd.2 | Cmd.3 | Cmd.4 | |
| ZZ | ^^ | =:wq/=:e(^=Control) | ||
| J | 次の行と繋げる | |||
| >> | << | 今いる行を字下げ/上げ | ||
| ^l | ウィンドウのクリアと再表示 | |||
| ^g | 現在のファイルと行の表示 | |||
| ^a | ^x | インクリメント/デクリメント | ||
| ^g | 現在のファイルと行の表示 | |||
| qx | q | @x | xにキー記録開始/記録停止/xの記録実行 | |
| ^p | キーワード検索(vim) |
初期設定ファイルは~/.exrc 、~/.vimrc (vim)
基本的に "{編集コマンド文字}+[数字]+{移動コマンド文字}"の組み合わせができる
編集コマンド:d(削除/Cut)、y(Yank:Copy)、c(変更)、<< など
移動コマンド:hjkl、0$、wb、%i など
基本的に "{編集コマンド文字}+[数字]+{移動コマンド文字}"の組み合わせができる
編集コマンド:d(削除/Cut)、y(Yank:Copy)、c(変更)、<< など
移動コマンド:hjkl、0$、wb、%i など