vi キーバインド 目次 0. はじめに 1. 基本的な操作 2. コピーとペースト 3. 検索 4. 応用的な移動 5. 応用的な操作 6. 行のマーキング 0. はじめに まずは1を徹底的に覚える事。同じキーバインドであるロールプレイング・ゲーム 「jnethack」で遊んで、カーソル移動を指にたたき込もう。 コピーペーストと検索までは最低限覚えよう。 1. 基本的な操作 a : カーソル右から挿入モードへ i : カーソル左から挿入モードへ k : 上へ移動 j : 下へ移動 h : 左へ移動 l : 右へ移動 x : カーソル位置の文字を削除 ZZ : (更新された場合は)セーブして終了 :q! : 強制終了 ESC : 挿入モードを抜ける :help : ヘルプを見る 2. コピーとペースト dd : カーソル行を削除 yy : カーソル行をコピー 4dd : カーソル行から4行削除 3yy : カーソル行から3行コピー p : カーソル行の下にプット P : カーソル行の上にプット 3. 検索 / : 順方向検索 ? : 逆方向検索 n : 次を検索 N : 逆方向で次を検索 4. 応用的な移動 CTRL F : 順方向へスクロール CTRL B : 逆方向へスクロール J : 行連結 ^ : 行の先頭へ移動 $ : 行の終端へ移動 1G : ファイルの先頭へ移動 G : ファイルの終端へ移動 A : 行末に移動して挿入モードへ I : 文の先頭に移動して挿入モードへ o : 一行下に新しい行を作成し挿入モードへ O : 一行上に新しい行を作成し挿入モードへ 5. 応用的な操作 :e! : 現在のファイルを再読み込み :e filename : 指定ファイルを編集する(現在のファイルが編集中ならはじかれる) :e! filename : 指定ファイルを編集する(現在のファイルが編集中でもはじかれない) :e# : 前のファイルに戻る(現在のファイルが編集中ならはじかれる) :e!# : 前のファイルに戻る(現在のファイルが編集中でもはじかれない) :行番号 : 指定行へ移動 :s/old/new/ : 最初の old を new に置換 :s/old/new/g : 全ての old を new に置換 :s/old/new/gc : で確認メッセージを表示 . : 一つ前の[ESC]までの操作をリドゥ w : 単語毎にジャンプ W : もう少し大きめにジャンプ dG : カーソル以下を全部消す :!hoge : シェルコマンドhogeを実行する。:!gcc %;./a.outなどとすると、 現在ファイルをコンパイルして実行という意味になる 6. 行のマーキング m? : 現在の行をマークする ?は覚えさせる名前。 maとかmbなど '? : 覚えさせた行 ? に移動する。 'aとか'bなど :'?,.s/xx/yy/ : 覚えさせた行 ? から現在行(.)までs/xx/yy/を実行 :a,b!hoge : 登録した行aから登録した行bの範囲の内容を標準入力として コマンドhogeに渡して、その標準出力結果と入れ替える :'a,.!sort : 登録した行aから現在行(.)までを部分的にsortする