「駑馬十駕」 IT系情報を中心に調べた事をコツコツ綴っています。

Linux系OSを操作していて一番初めに戸惑うのが「viエディタ」の独特の操作方法だと思われます。
人によっては慣れれば離れられないらしいのですが、正直、私は未だにこの独特の操作感に慣れる気がしません・・・。
ある程度の期間触っていないと、すぐ忘れてしまいそうなので基本操作についてまとめておこうと思います。

viエディタの初期操作

    コマンド説明
    :set nu行番号を表示
    :set nonu行番号を非表示
    :set ts=タブ幅タブ幅を数値で指定

コマンド入力モードからテキスト入力モードへの切り替え

    コマンド説明
    Escテキストモードからコマンド入力モードへの切り替え
    iカーソルの直前からテキスト入力
    Iカーソルの行頭からテキスト入力
    aカーソルの次の位置からテキスト入力
    Aカーソルの行末からテキスト入力
    oカレント行の下に空白行を挿入し、そこからテキスト入力
    Oカレント行の上に空白行を挿入し、そこからテキスト入力

viのカーソル(画面)操作

    コマンド説明
    hカーソルを1文字左に移動(←キーと同様)
    jカーソルを1文字下に移動(↓キーと同様)
    kカーソルを1文字上に移動(↑キーと同様)
    l(小文字のエル)カーソルを1文字右に移動(→キーと同様)
    0(ゼロ)、^カーソルを行頭へ移動
    $カーソルを行末へ移動
    H表示画面の先頭行の行頭へ移動
    M表示画面の中央行の行頭へ移動
    L表示画面の最終行の行頭へ移動
    Gファイルの最終行へ移動
    nHカーソルを画面内の先頭行からn行目へ移動
    nLカーソルを画面内の最終行からn行手前の行へ移動
    nG、
    :n
    :n + Enter
    ファイルのn行目へ移動
    bカーソルを前の単語の先頭へ移動(句読点も含む)
    wカーソルを次の単語の先頭へ移動(句読点も含む)
    eカーソルを単語の末尾へ移動(句読点も含む)
    Bカーソルを前の単語の先頭へ移動(句読点は無視)
    Wカーソルを次の単語の先頭へ移動(句読点は無視)
    Eカーソルを単語の末尾へ移動(句読点は無視)
    (カーソルを前の文の先頭へ移動
    )カーソルを次の文の先頭へ移動
    {カーソルを前の段落の先頭へ移動
    }カーソルを次の段落の先頭へ移動
    %カーソル位置の括弧に対応する括弧へ移動
    Ctrl + f前方へ1画面分スクロールする
    Ctrl + b後方へ1画面分スクロールする
    Ctrl + d前方へ1/2画面分スクロールする
    Ctrl + u後方へ1/2画面分スクロールする

viの検索コマンド

    コマンド説明
    fxカーソルと同一行にある次の文字xを検索する
    Fxカーソルと同一行にある前の文字xを検索する
    /regex + Enter文字列regexにマッチするカーソル以降の文字列を検索(前方検索)
    ?regex + Enter文字列regexにマッチするカーソル以前の文字列を検索(後方検索)
    / + Enter前方検索を継続
    ? + Enter後方検索を継続
    n前回と同じ方向へ検索を継続
    N前回と逆方向へ検索を継続

文字列置換関連のコマンド

    コマンド            説明
    ~(チルダ)大文字⇔小文字変換
    c + カーソル移動コマンド動作としては「d + カーソル移動コマンド」と同様だが、コマンド入力後にテキスト入力モードへ切り替わる
    cc、S動作としては「ddコマンド」と同様だが、コマンド入力後にテキスト入力モードへ切り替わる
    C動作としては「Dコマンド」と同様だが、コマンド入力後にテキスト入力モードへ切り替わる
    rカーソル位置の1文字を書き換える。書き換え後はコマンド入力モードに戻る
    sカーソル位置の1文字を書き換える。書き換え後はテキスト入力モードのまま
    Rカーソル位置以降の文字列を書き換える
    :s/regex/stringカーソルと同一行にある次の文字列regexstringへ置換
    :s/regex/string/gカーソルと同一行にある文字列regexstringへ全て置換
    :m,ns/regex/stringm行目からn行目の間の文字列regexstringへ全て置換
    :%s/regex/stringファイル内の文字列regexstringへ全て置換

Ads by Google

コメントを残す

メールアドレスが公開されることはありません。