TA

TA

Vimを学ぶ


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

  1. 簡単な歴史的視点

  2. ファイルの開閉

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


第 2 章、簡単な編集#

  1. カーソルの移動

    • 単一の移動: hjkl、彼らは最悪です!私はneo キーボードレイアウトを持っています。
    • 数値引数: 1、2、...
    • 行内の移動:
      • 0、行の先頭に移動
      • $、行の末尾に移動
      • ^、最初の非空文字に移動
    • テキストブロックによる移動
      • w,b、単語ごとに移動、前方、後方、それぞれ。
      • W,B、大きな単語ごとに移動、前方、後方、それぞれ。 "-" で接続された単語は 1 つとして扱われます。
      • 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
    • (command)(text object)
    • (command)(number)(text object)
    • (number)(command)(text object)
    • 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. 検索による移動

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

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

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

第 4 章、基本を超えて#

  1. より多くのコマンドの組み合わせ

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

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

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

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

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

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

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

  1. 置換

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

    • y ははい
    • n はいいえ
    • Enter、終了
  3. コンテンツに応じた置換

    • :%s/old/new/g、確認なし、ファイル全体
    • :g/pattern/s/old/new/g
    • :1,200g/pattern/s/old/new/g
    • :g/pattern/s/old/new/g:g/pattern/s//new/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/old/NEW/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>something</p>                                                             <p>somethingelse</p>
    <a>something</a>   ===> `:%300,400g/<p>/s/something/somethingelse/g` ===>    <a>something</a>
    <a>something</a>                                                             <a>something</a>
    <p>something</p>                                                             <p>somethingelse</p>
    
    • 例 - 2
    one                                                  (one)
    two                                                  (two)
    three       ===> `:348,352s/.*/(&)/` ===>            (three)
    four                                                 (four)
    five                                                 (five)
    
    • 例 - 3
    That or this   ===>  `:%s/\(That\) or \(this\)/\2 or \1/` ===>  this or That
    
  __              _       _                                 _ _
 / _| ___  _ __  | | __ _| |_ ___ _ __   _ __ ___  __ _  __| (_)_ __   __ _
| |_ / _ \| '__| | |/ _` | __/ _ \ '__| | '__/ _ \/ _` |/ _` | | '_ \ / _` |
|  _| (_) | |    | | (_| | ||  __/ |    | | |  __/ (_| | (_| | | | | | (_| |
|_|  \___/|_|    |_|\__,_|\__\___|_|    |_|  \___|\__,_|\__,_|_|_| |_|\__, |
                                                                      |___/

第 7 章、高度な編集#

  1. vi のカスタマイズ

    • コマンド
      • :set option、または :set nooption
    • .exrc ファイル
  2. Unix コマンドの実行

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

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

    • 単語の略語
      • :ab abbr phrase
      • :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. #*、カーソルの下の単語を検索
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。