TA

TA

Vimを学ぶ


第 1 章、vi テキストエディタ#

  1. 簡単な歴史的視点

  2. ファイルの開閉

    • vi ファイル名、編集
    • ZZ、ファイルを保存
    • :w、保存
    • :w 新しいファイル名、名前を付けて保存
    • :w!、強制書き込み
    • :e!、再開
    • :q!、強制終了
    • :!rm ジャンクファイル
    • :!df
  3. vi を学ぶ唯一の方法は練習することです。


第 2 章、簡単な編集#

  1. カーソルの移動

    • 単一の移動: hjkl、彼らは最悪です!私はneo キーボードレイアウトを持っています
    • 数値引数: 1、2、...
    • 行内の移動:
      • 0、行の先頭に移動
      • $、行の末尾に移動
      • ^、最初の非空文字に移動
    • テキストブロックによる移動
      • w,b、単語ごとに移動、前方、後方
      • W,B、大きな単語ごとに移動、前方、後方
      • 8G、8 行目に移動
      • G、ファイルの終わりに移動
      • gg1Gのように
    • 前の / 次の行の最初の文字に移動: -+
  2. 簡単な編集

    • a、追加;(必要ありません、私はこれらのキーを他の用途にカスタマイズします)
    • i、挿入;
    • c、変更;
      • cw, cb、単語を変更、前方、後方
      • c2w、2 単語を変更、前方
      • c^、最初の非空文字に
      • c0, c$、行の先頭、末尾に、またはc[Home]、c[End]を使用
    • d、削除;
      • dw、単語ごとに
      • db、単語、後方
      • dd、行を削除
      • d$、d[End]、D、行の末尾まで削除
      • dtodTx、"x" まで(含まない)削除、前方 / 後方
      • d/th、最初の "th" の一致まで削除
      • diw、現在の単語を削除
      • di(、現在の括弧内を削除
    • s、置換
      • s(1 文字以上)、S(行全体)。
    • x、X、1 文字を削除、前方、または後方(必要ありません)
      • xP、XP、削除して戻す
      • xp、Xp、2 文字を入れ替える
    • y、ヤンク;
    • p、ペースト;
      • $p、行の末尾にペースト
      • 0P^P、行の先頭にペースト
  3. vi コマンドの一般的な形式

    • cc、dd、yy
    • (コマンド)(テキストオブジェクト)
    • (コマンド)(数)(テキストオブジェクト)
    • (数)(コマンド)(テキストオブジェクト)
    • cc、行全体を変更
    • Cc$のように
    • ~、大文字小文字を変更
  4. その他

    • 最後のコマンドを繰り返す
      • .
    • 元に戻す、やり直す
      • uC-rU、evil-mode では異なる動作のようです
    • 挿入コマンドの数値引数:例 4i<space><Esc>
  5. 注意

    • ccddyy、行に適用
    • CDSは現在の位置から末尾に適用され、Yは行全体に適用
    • C === c$D === d$、しかしY === yyy$ではなく
  6. 全体

    +------------------------------+------------------------------+------------------------------+------------------------------+
    |         テキストオブジェクト          |            変更            |            削除            |             コピー             |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |           1単語           |              cw              |              dw              |              yw              |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |   2単語、カウントしない    |          2cWまたはc2W          |          2dWまたはd2W          |          2yWまたはy2W          |
    |         句読点          |                              |                              |                              |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |       3単語後方       |          3cbまたはc3b          |          3dbまたはd3b          |          3ybまたはy3b          |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |           1行           |              cc              |              dd              |           yyまたはY            |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |        行の末尾まで        |           c$またはC            |           d$またはD            |              y$              |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |     行の先頭まで     |              c0              |              d0              |              y0              |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |       単一文字       |              r               |            xまたはX            |           ylまたはyh           |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    |       5文字        |              5s              |              5x              |             5yl              |
    +------------------------------+------------------------------+------------------------------+------------------------------+
    
    • rddPcwx
    エディタを使うとページをスクロールでき、カーソルを移動し、行を削除し、文字を挿入し、編集結果を作成しながら見ることができます。
    スクリーンエディタは非常に人気があります。
    
    • Pp.
    スクリーンエディタを使うとページをスクロールできます。
    カーソルを移動できます。
    行を削除できます。
    
    • J
    スクリーンエディタを使うとページをスクロールでき、カーソルを移動できます。
    

第 3 章、急いで移動する#

  1. スクリーンによる移動

    • スクリーンのスクロール:
      • C-bC-f
      • C-u(emacs evil-mode では動作しません)、C-d
      • C-yC-e
      • z<Enter>z.z-、上部 / 中央 / 下部に移動し、そこにスクロールします(emacs のrecenter-top-centerほど良くはありません、私はこれを evil-mode で削除します)
  2. スクリーンの再描画: C-l(私の evil-mode では動作しません、recenter-top-centerがあります)

  3. スクリーン内の移動

    • HML: スクリーンの上部 / 中央 / 下部に
    • 2H2L: 上部 / 下部から 2 行目
  4. 行による移動

    • +<Enter>-、次の / 前の行の最初の文字に移動します。
    • 現在の行での移動: 20|、20 列目に移動、^、最初の非空文字に移動。
  5. テキストブロックによる移動

    • eE、単語の末尾(句読点を無視)
    • ()、現在の / 次の文の先頭
    • {}、現在の / 次の段落の先頭
    • [[]]、現在の / 次のセクションの先頭
  6. 検索による移動

    • /パターン?パターン、前方 / 後方に検索
    • n、次の一致
    • N、次の一致、反対の位置
    • :set nowrapscan、ループ検索を行わない
    • d/パターン
  7. 現在の行の検索

    • fxFx、前の / 次の 'x' に移動
    • txTx、'x' の前の文字に移動、前の / 次の
    • ;,、同じ方向、反対方向を繰り返す
    • 7fx、7 番目の一致に移動
    • dfx、例 dfi、ここから最初の 'i' の出現まで削除し、次にd;、2 番目の 'i' の出現まで削除
  8. 行番号による移動

    • 20G、20 行目に移動
    • ``, 戻る(古い位置)
    • ''、戻るが行の先頭に
    スクリーンエディタを使うとページをスクロールでき、カーソルを移動し、行を削除し、文字を挿入し、さらに、編集結果を作成しながら見ることができます。
    

第 4 章、基本を超えて#

  1. さらなるコマンドの組み合わせ

    +------------+------------+-----------+------------------------------+
    |変更      |削除      |コピー       |カーソルから...             |
    +------------+------------+-----------+------------------------------+
    |cH          |dH          |yH         |スクリーンの上部                 |
    +------------+------------+-----------+------------------------------+
    |cL          |dL          |yL         |スクリーンの下部              |
    +------------+------------+-----------+------------------------------+
    |c+          |d+          |y+         |次の行                     |
    +------------+------------+-----------+------------------------------+
    |c5|         |d5|         |y5|        |現在の行の5列目      |
    +------------+------------+-----------+------------------------------+
    |2c)         |2d)         |2y)        |次の文の2番目     |
    +------------+------------+-----------+------------------------------+
    |c{          |d{          |y{         |前の段落            |
    +------------+------------+-----------+------------------------------+
    |c/パターン   |d/パターン   |y/パターン  |パターン                       |
    +------------+------------+-----------+------------------------------+
    |cn          |dn          |yn         |次のパターン                  |
    +------------+------------+-----------+------------------------------+
    |cG          |dG          |yG         |ファイルの終わり                   |
    +------------+------------+-----------+------------------------------+
    |c13G        |d13G        |y13G       |13行目                |
    +------------+------------+-----------+------------------------------+
    
  2. vi を起動する際のオプション

    • vi +3 ファイル名、3 行目でファイルを開く
    • vi + ファイル名、最後の行でファイルを開く
    • vi +/パターン ファイル名、パターンの最初の出現でファイルを開く
    • vi +R ファイル名、読み取り専用モードでファイルを読み込む
    • vi -r ファイル名ex -r ファイル名、バッファを回復
  3. 名前付きバッファへのヤンク

    • "dyy"、バッファ "d" にヤンク
    • "ayw"、バッファ "a" にヤンク
    • "ap"dp`、バッファ"a"/"d" をペースト
  4. 自分の位置をマークする

    • mx、現在の位置を x にマーク
    • 'x x `、マーク x に移動。(最初の文字、または正確な位置)
    • ''``, 最後の位置に移動

第 5 章、ex エディタの紹介#

  __              _       _                                 _ _
 / _| ___  _ __  | | __ _| |_ ___ _ __   _ __ ___  __ _  __| (_)_ __   __ _
| |_ / _ \| '__| | |/ _` | __/ _ \ '__| | '__/ _ \/ _` |/ _` | | '_ \ / _` |
|  _| (_) | |    | | (_| | ||  __/ |    | | |  __/ (_| | (_| | | | | | (_| |
|_|  \___/|_|    |_|\__,_|\__\___|_|    |_|  \___|\__,_|\__,_|_|_| |_|\__, |
                                                                      |___/

第 6 章、グローバル置換#

  1. 置換

    • :s/古い/新しい、古いものの最初の出現を置換
    • :s/古い/新しい/g、多くの出現
    • :50,100s/古い/新しい/g:50,100s/古い/新しい 50〜100 行に適用
    • :1,$s/古い/新しい、ファイル全体に適用
  2. c、確認

    • y ははい
    • n はいいえ
    • Enter、終了
  3. コンテンツに敏感な置換

    • :%s/古い/新しい/g、確認なし、ファイル全体
    • :g/パターン/s/古い/新しい/g
    • :1,200g/パターン/s/古い/新しい/g
    • :g/パターン/s/古い/新しい/g:g/パターン/s//新しい/gと同じ
  4. パターンマッチングルール

    • .、単一文字、改行を除く
    • *、前の文字の 0 回以上の出現に一致
      • a*aaaaaa などに一致
      • .* は任意の文字の組み合わせに一致
    • ^、$、正規表現の最初 / 最後の文字である場合、行の始まり / 終わりとして扱われ、それ以外はそのまま扱われる。
      • ^Line は "Line" で始まる任意の行に一致
      • something^* は "something"、"something^"、"something^^" などに一致
    • []、例 [aoei]aoei に一致;[a-z];:[a-z0-9] は期待通りに動作します。
    • :%s/\(That\) or \(this\)/\2 or \1/
    • ~、最後の検索履歴に一致。例えば、/the で "the" を検索した後、/~n で "then" を検索できます。
    • \、例 \. は "."
    • \<m\>tion、'm' で始まり、"tion" で終わる単語に一致
  5. POSIX ブラケット式

    • [:alnum:] 英数字
    • [:alpha:] アルファベット文字
    • [:blank:] スペースとタブ文字
    • [:cntrl:] 制御文字
    • [:digit:] 数字
    • [:graph:] 印刷可能で可視(空白以外)の文字
    • [:lower:] 小文字
    • [:print:] 印刷可能な文字(空白を含む)
    • [:punct:] 句読点
    • [:space:] 空白文字
    • [:upper:] 大文字
    • [:xdigit:] 16 進数の数字
  6. s/古い/新しい/gの新しいパターン

    • \n、n は 1..9、(THIS) に一致
    • &、一致した部分
    • ~s/thier/their/、次にs/her/~/s/her/theirのようになります。
    • \u、\l、大文字 / 小文字の文字。:s/\(That\) or \(this\)/\u\2 or \l\1/
    • \U、\L、\e、\E、大文字の領域、または全体の一致
    • :set ic、大文字小文字を無視
  7. さらなる置換のトリック

    • :s//~/、最後の置換を繰り返す
    • :%&g、最後の置換をすべての場所で繰り返す
    • :%s;/user1/tim;/home/tim;g
  8. 演習

    • /four<Enter>cwfiven(検索を繰り返す)、n(1 つの一致をバイパス)、.(最後のcwfiveを適用)
    • 例 - 1
    <p>何か</p>                                                             <p>何か他のもの</p>
    <a>何か</a>   ===> `:%300,400g/<p>/s/何か/何か他のもの/g` ===>    <a>何か</a>
    <a>何か</a>                                                             <a>何か</a>
    <p>何か</p>                                                             <p>何か他のもの</p>
    
    • 例 - 2
    一                                                  (一)
    二                                                  (二)
    三       ===> `:348,352s/.*/(&)/` ===>            (三)
    四                                                 (四)
    五                                                 (五)
    
    • 例 - 3
    That or this   ===>  `:%s/\(That\) or \(this\)/\2 or \1/` ===>  this or That
    
  __              _       _                                 _ _
 / _| ___  _ __  | | __ _| |_ ___ _ __   _ __ ___  __ _  __| (_)_ __   __ _
| |_ / _ \| '__| | |/ _` | __/ _ \ '__| | '__/ _ \/ _` |/ _` | | '_ \ / _` |
|  _| (_) | |    | | (_| | ||  __/ |    | | |  __/ (_| | (_| | | | | | (_| |
|_|  \___/|_|    |_|\__,_|\__\___|_|    |_|  \___|\__,_|\__,_|_|_| |_|\__, |
                                                                      |___/

第 7 章、高度な編集#

  1. vi のカスタマイズ

    • コマンド
      • :set オプション、または :set noオプション
    • .exrc ファイル
  2. Unix コマンドの実行

    • :!cmd
    • :r !date、ファイルに出力、Thu May 1 12:59:55 CST 2014
    • :. !daterと同じですが、現在の行を上書き
    • :r Learning-Vim.md、これは.... 良いです。
  3. コマンドを通じてテキストをフィルタリング

    • :%!sort、試してみてください、死にます...
    • !)cmd、これらの文を cmd に渡す
    • !!、現在の行
    • !2!2!!、2 行
  4. コマンドの保存

    • 単語の省略
      • :ab abbr フレーズ
      • :unab abbr

第 8 章、vi クローンの紹介#


トリック#

  1. diwdi"di{}
  2. :!xxd、16 進数エディタ
    :!xxd -r
  3. de、その後.を希望通りに
  4. ddp、現在の行と次の行を入れ替える
  5. byeyiw
  6. '.、最後に編集した行
  7. `., 最後に編集した文字
  8. :changes、変更をリスト
  9. /rgba/y A
    10.gv、最後の視覚選択を再選択
  10. g~~gUUguu
  11. >><<、インデント
  12. #*、カーソルの下の単語を検索
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。