スキルを向上させるために役立つ「Vi/Vim」エディターのヒントとコツを学ぶ - パート 1
Linux でテキスト エディターの使用方法を学ぶ必要があることに議論の余地はありません。すべてのシステム管理者とエンジニアは日常的に構成 (プレーン テキスト) ファイルを扱いますが、ほとんどの場合、これはコマンド ライン インターフェイスから 1 つ以上のツール (nano、 など) を使用してのみ行われます。 >vim、またはemacs)。
おそらく新しいユーザーには nano の方が適していますが、高度な機能を備えているため、経験豊富なユーザーには vim または emacs が最適なツールです。
ただし、このテキスト エディターの使用方法を学ぶことが最優先事項であるもう 1 つの理由があります。CLI のみのサーバーに遭遇するか、GUI ベースの Linux サーバーのデスクトップ マネージャーで問題が発生する可能性があります。またはデスクトップであり、それを調べて構成ファイルを編集するための唯一のリソースはコマンド ラインです。
この記事とこの 2 つの記事シリーズの次回の間に、vim スキルを向上させるための15 のヒントとテクニックを確認します。このテキスト エディタにはすでに慣れていることを前提としています。そうでない場合は、先に進む前に、お願いして vim についてよく知っておいてください。vim を使い始めるための非常に詳細なガイドについては、「フル テキスト エディターとして vi/vim を使用する方法」を参照するとよいでしょう。
パート 2: 8 つの興味深い「Vi/Vim」エディタのヒントとコツ
ヒント #1: オンライン ヘルプの使用
vim を起動した後、F1 を押すか、ex モードで :h を使用してオンライン ヘルプに入ります。特定のセクションまたはトピックにジャンプするには、カーソルをその上に置き、Ctrl+]
(Ctrl に続いて右角括弧) を押します。
完了したら、Ctrl+t
を押して前の画面に戻ります。あるいは、:h <トピックまたはコマンド>
を使用して、特定のサブジェクトまたはコマンドを検索することもできます。
例えば、
:h x
x (削除) コマンドのヘルプが表示されます。
そして
:h substitute
substitute コマンドに関するヘルプが表示されます (この記事の最後のヒント)。
ヒント #2: マークを使用して前後にジャンプする
1 画面よりも大きいファイルを編集している場合は、マークが提供する機能が役立つでしょう。 vim のマークはブックマークと考えることができます。一度どこかに置くと、すぐに簡単にそこに戻ることができます。たとえば300 ワードの設定ファイルを編集していて、何らかの理由で 30 行と 150 行を繰り返し切り替える必要があるとします。
まず、ex モードで「:30」と入力して行 #30 に移動し、コマンド モードに戻って ma を押します。 > (m、次に a) を使用して、30 行目に 「a」 という名前のマークを作成します。
次に、250 行目 (ex モードでは :250 ) に移動し、`a
(バッククォート、次に a) を押して マークに戻ります。 >a 行 30 です。 vim では小文字と大文字を使用してマークを識別できます (このプロセスを繰り返して、行 #250 に A という名前のマークを作成します)。
マークを表示するには、
:marks aA
ご覧のとおり、各マークは行だけではなく、ファイル上の特定の行/列位置によって参照されます。
ヒント #3: 最後のコマンドを繰り返す
あなたがシェル スクリプトを編集していて、以前の開発者がインデントに関してかなり下手だったことに気づいたとします。いくつかの vim コマンドを使用してこれを修正する方法を見てみましょう。
まず、ブロックの先頭にカーソルを置き、Ctrl+v キー (Ctrl の次に v) を押してビジュアル ブロックを選択します。
- 左にインデントするには:
を押します。 - 右にインデントするには:
を押します。
次に、.
(ドット) コマンドを押して、いずれかのインデントを繰り返します。選択したブロックは 1 回のキーストロークで右または左に移動します。
ドット コマンドを使用するもう 1 つの典型的な例は、一連の単語を削除する必要がある場合です。削除する最初の単語にカーソルを置き、dw キーを押します。次の単語の削除を続けるには、.
を押すだけです (dw を数回繰り返すよりも短くて簡単です)。
ヒント #4: 特殊な Unicode 文字の挿入
キーボード レイアウトにより、特殊な Unicode 文字をファイルに簡単に挿入できない場合、または慣れている言語設定とは異なる言語設定のサーバーの前にいることに気付いた場合、このトリックが役に立ちます。
これを行うには、挿入モードで Ctrl+v を押し、続いて文字 u と挿入する文字の 16 進数値コードを押します。特殊文字とそれに対応する数値コードのリストについては、Unicode チャートを確認できます。
例えば、
- Ctrl+v followed by
-
返品
- u0040
@
- u00B5
μ
- u20AC
€
ヒント #5: vim 内から外部バイナリを呼び出す
外部コマンドの出力を vim で編集中のファイルに直接挿入する必要がある場合があります。たとえば、私はよくスクリプト内で DIR という名前の変数を作成し、後でスクリプト内で使用できるように、スクリプトが存在するディレクトリへの絶対パスを保存します。そのために、私は以下を使用します。
:r! pwd
ex モード。したがって、現在の作業ディレクトリが挿入されます。
別の例: スクリプト内のどこかでデフォルト ゲートウェイを使用する必要がある場合、次のように vim を終了せずに現在のファイルにデフォルト ゲートウェイを簡単に挿入できます。
:!r ip route show | grep default | cut -f 3 -d " "
ヒント #6: 既存のファイルを挿入する
別のファイルの内容を現在編集中のファイルに追加する必要がある場合、構文は前のヒントと似ています。感嘆符を省略するだけで大丈夫です。
たとえば、/etc/passwd の内容をコピーするには、次のようにします。
:r /etc/passwd
このヒントは、構成ファイルを変更する必要があるが、元のファイルを保持して、いわば「工場出荷時の設定」にロールバックしたい場合に役立つかもしれません。
ヒント #7: 検索と置換 (置換)
まさに実話です。試験中に、ランダムなデータを含む大きなテキスト ファイルを開くように求められたことがあります。割り当てられたタスクは、 出現するすべての単語地球を地球に置き換えることで構成されていました(はい、私は今でも正確な単語を覚えています)。 sed に慣れている人にとっては、これはベルを鳴らすでしょう - ex モードで、次のように入力します。
:%s/old/new/g
ここで、old は検索するパターン、new はそれを置き換える文字列です。
上記のケースでは、次のものを使用しました。
:%s/Globe/Earth/g
仕事をやり遂げるために。
では、置換を行う前にプロンプトを表示したい場合はどうすればよいでしょうか?簡単。次のように、上記のコマンドの最後に c を追加するだけです。
:%s/old/new/gc
出現したパターンが強調表示され、新しい文字列に置き換えるかどうかを尋ねられます。
:%s/gacanepa/me/gc
どこ
- はい: はい
- いいえ: いいえ
- a: すべてを置き換えます
- q: やめます
- l: この出現箇所を置き換えて終了します
- ^E (Ctrl+E): 1 画面上にスクロールします
- ^Y (Ctrl+Y): 1 画面下にスクロールします
まとめ
この記事では、 テキスト編集スキルを高めるためのvim のヒントとテクニックのレビューを開始しました。おそらく他にもいくつか思いつくでしょう。以下のフォームを使用して共有してください。この vim シリーズの次回の最後の記事で取り上げることを検討します。ご連絡をお待ちしております。