Linuxでテキストエディターを使う必要性は議論の余地がありません。なぜなら、すべてのシステム管理者が毎日設定(プレーンテキスト)ファイルを扱い、ほとんどの場合、コマンドラインインターフェースから1つ以上のツールを使用して行うからです(例:nano、vim、またはemacs)。
nanoはおそらく新規ユーザー向けにより適していますが、vimまたはemacsは高度な機能を備えているため、より経験豊富なユーザーの選択肢です。
しかし、これらのテキストエディターの使用方法を学ぶことが最優先事項である理由がもう1つあります。CLI専用サーバーにぶつかるか、GUIベースのLinuxサーバーやデスクトップのデスクトップマネージャーで問題が発生し、設定ファイルを調査および編集する唯一のリソースがコマンドラインである場合があるからです。
この2つの記事シリーズの今回と次回の間に、15のヒントとトリックを紹介します。あなたがこのテキストエディターについて既に慣れていると想定されています。
Vimの使い方に慣れる前に、自分のためにVimテキストエディターの使い方を参照することをお勧めします。1. Vimでオンラインヘルプにアクセスする
Vimを起動した後、F1
を押すか:h
をexモードで使用して、オンラインヘルプにアクセスします。特定のセクションやトピックに移動するには、カーソルをその位置に置いてからCtrl+]
(Ctrl
、次に閉じカッコ)を押します。
作業が完了したら、Ctrl+t
を押して前の画面に戻ります。また、:h <トピックまたはコマンド>
で特定の主題やコマンドを検索できます。
たとえば、
:h x
x (delete)コマンドのヘルプを表示します:

そして
:h substitute
substituteコマンドに関するヘルプを表示します(この記事の最後のヒント)。
2. Vimエディター内にブックマークを追加する
画面よりも大きなファイルを編集している場合、マークが提供する機能がありがたいでしょう。 Vimでのマークはブックマークと考えることができます – 一度置いた場所にすばやく簡単に戻ることができます。
例えば、300ワードの構成ファイルを編集しているとしましょう。何らかの理由で、行30と150の間を繰り返し切り替える必要があります。
最初に、#30行に移動するには、exモードで:30
を入力し、ma (m、a) を押して30行目に“a”という名前のマークを作成します。
次に、:250
で250行目に移動し、バッククォート、その後aを押して30行目のマークaに戻ります。
vimでは、マークを識別するために大文字と小文字の両方を使用できます(今度はプロセスを繰り返して250行目にAという名前のマークを作成します)。
マークを表示するには
:marks aA

を使用できます。
3. Vimでの簡単なコードクリーンアップ
シェルスクリプトを編集していると、前の開発者がインデントに関してかなりひどかったことに気づいた場合、vimコマンドを使用してそれを修正する方法を見てみましょう。
まず、ブロックの開始位置にカーソルを置いてCtrl+v
を押してビジュアルブロックを選択します。
- 左にインデントするには:
<j
を押します。 - 右にインデントするには:
<j
を押します。
その後、.
(ドット)コマンドを押すと、選択したブロックが1回のキーストロークで右または左に移動します。
別のdotコマンドのクラシックな使用例は、一連の単語を削除する必要があるときです:最初に削除したい単語にカーソルを置き、dwを押します。
次の単語を削除し続けるには、.
を押すだけです(dwを繰り返すよりも短くて簡単です)。
4. VimでUnicode文字を挿入する
キーボードレイアウトがファイルに特殊なUnicode文字を簡単に挿入できない場合や、使用している言語設定と異なる言語設定のサーバーに直面する場合に、このトリックが役立ちます。
これを行うには、挿入モードでCtrl+v
を押した後、文字u
と挿入したい文字の16進数の数値コードを入力します。
特殊文字とそれに対応する数値コードのリストは、Unicodeチャートで確認できます。
例えば、
Ctrl+v followed by | returns |
u0040 | @ |
u00B5 | μ |
u20AC | € |
5. Vimで外部コマンドの出力を取り込む
vimで編集されているファイルに外部コマンドの出力を直接挿入する必要がある場合があります。
例えば、スクリプト内でスクリプトが存在するディレクトリの絶対パスを後で使用するために、よく変数DIR
を作成します。
そのために、次のように使用します:
:r! pwd
エクスモード内で。これにより、現在の作業ディレクトリが挿入されます。
:!r ip route show | grep default | cut -f 3 -d " "
もう一つの例:スクリプトのどこかでデフォルトゲートウェイを使用する必要がある場合、vim を終了せずに現在のファイルに挿入できます。
6. Vim で外部ファイルの内容を追加する
現在編集しているファイルに別のファイルの内容を追加する必要がある場合、構文は前のヒントと似ています。感嘆符を省略するだけで、作業は完了です。/etc/passwdの内容をコピーする場合の例:
:r /etc/passwd
このヒントは、設定ファイルを変更する必要があるが、元のファイルを「工場出荷時設定」に戻すことができる場合に便利です。
7. Vim で単語を検索して置換する
ある時試験中に、ランダムなデータが含まれた大きなテキストファイルを開くように求められました。割り当てられたタスクは、Globeという単語の出現をすべてEarthに置換することでした(はい、正確な言葉はまだ覚えています)。
sedを知っている人には、これはよく知られていることです。exモードで、次のように入力します:
:%s/old/new/g
ここで、oldは検索するパターンであり、newはそれに置換される文字列です。
上記の場合、私は次のように使用しました:
:%s/Globe/Earth/g
作業を完了するために。
では、置換前にプロンプトが表示されるようにしたい場合はどうすればよいでしょうか?簡単です。上記のコマンドの最後にcを追加します。
:%s/old/new/gc
パターンの出現箇所が強調表示され、新しい文字列で置換するかどうかが尋ねられます:
:%s/gacanepa/me/gc

where
- y: yes
- n: no
- a: substitute all
- q: quit
- l: substitute this occurrence and quit
- ^E (Ctrl+E): 1つスクリーン上にスクロールする
- ^Y (Ctrl+Y): 1つスクリーン下にスクロールする
サマリ
この記事では、テキスト編集スキルに追加するいくつかのVimのヒントとトリックのレビューを始めました。おそらく他にもいくつか思いつくでしょうので、以下のコメントフォームで共有していただければ、次回のこのVimシリーズの最終記事で取り上げることを検討します。
Source:
https://www.tecmint.com/learn-vi-and-vim-editor-tips-and-tricks-in-linux/