すべてのLinux管理者向けの8つの興味深い「Vi / Vim」エディターのヒントとコツ-パート2


このシリーズの前回の記事では、vi/mスキルセットに追加する7つのヒントとコツを確認しました。前述の理由に加えて、システム管理者またはエンジニアにとって不可欠な能力でLinuxでテキストエディタを効果的に使用する方法を学び、主要なLinux認定プログラム(LFCS、LFCE、RHCSA、RHCEなど)に合格するために必要な能力です。 。

そうは言っても、始めましょう。

ヒント8:水平または垂直のウィンドウを作成する

このヒントは、パート1で読者の1人であるYoanderによって共有されました。複数の水平または垂直分割でvi/mを起動して、同じメインウィンドウ内の個別のファイルを編集できます。

test1を上部に、test2を下部に、2つの水平ウィンドウでvi/mを起動します。

# vim -o test1 test2 

左側にtest3、右側にtest4の2つの垂直ウィンドウでvi/mを起動します。

# vim -O test3 test4 

通常のvi/m移動ルーチン(h:右、l:左、j:下、k:上)を使用して、カーソルをあるウィンドウから別のウィンドウに切り替えることができます。

  1. Ctrl+w k – top
  2. Ctrl+w j – bottom
  3. Ctrl+w l – left
  4. Ctrl+w h – right

ヒント9:文字、単語、または行全体を大文字または小文字に変更します

このヒントはvimでのみ機能することに注意してください。次の例では、Xは整数です。

  1. To change a series of letters to uppercase, position the cursor on the first letter, then type gUX in ex mode, and finally press the right arrow on the keyboard.
  2. To change X number of words, place the cursor at the beginning of the word, and type gUXw in ex mode.
  3. To change an entire line to uppercase, place the cursor anywhere on the line and type gUU in ex mode.

たとえば、小文字の行全体を大文字に変換するには、行の任意の場所にカーソルを置き、gUUと入力する必要があります。

たとえば、2つの大文字の単語を小文字に変換するには、最初の単語の先頭にカーソルを置き、gu2wと入力する必要があります。

ヒント#10:INSERTモードで文字、単語、または行の先頭を削除します

exモード(つまり、dwで単語を削除する)では、文字または複数の単語を一度に削除できますが、挿入モードでは、次のように削除することもできます。

  1. Ctrl + h: delete the previous character to the place where the cursor is currently located.
  2. Ctrl + w: delete the previous word to the place where the cursor is currently located. For this to work correctly, the cursor must be placed in an empty space after the word that you need to delete.
  3. Ctrl + u: delete the current line beginning at the character immediately to the left of the place where the cursor is.

ヒント#11:既存の行をドキュメントの別の行に移動またはコピーする

よく知られているdd、yy、pコマンドをexモードで使用して、行を削除、ヤンク(コピー)、貼り付けることができるのは事実ですが、これらの操作を実行する場所にカーソルを置いた場合にのみ機能します。 。良いニュースは、コピーコマンドと移動コマンドを使用すると、カーソルが現在置かれている場所に関係なく同じことを実行できることです。

次の例では、Terri NicoleTharringtonによる「Forever」というタイトルの短い詩を使用します。まず、vimに行番号を表示させます(コマンドモードで:set nu –これは追加のヒントと考えてください)。 :3copy5(コマンドモードでも)を使用して、3行目を5行目より下にコピーします。

ここで、最後の変更を元に戻し(Esc + u –別のボーナスヒント!)、1move7と入力して、7行目を1行目に置き換えます。2行目から7行目が上にシフトし、前の1行目が7行目を占めることに注意してください。

ヒント#12:パターンによる検索の結果の一致をカウントし、あるオカレンスから別のオカレンスに移動します

このヒントは、代替コマンド(このシリーズのパート1のヒント#7)に基づいていますが、代替動作がnオプションによってオーバーライドされ、指定されたパターンの発生数がカウントされるため、何も削除されない点が異なります。 :

スラッシュを省略しないように注意してください。

:%s/pattern//gn 

例えば、

:%s/libero//gn

exモードでパターンのあるオカレンスから次のオカレンスに移動するには、n(小文字のN)を押します。前のインスタンスに移動するには、Nを押します。

vi/mを使用して構成ファイルを編集したり、コードを記述したりする場合は、プログラムを最初に開いたときに行番号を表示し、Enterキーを押したときにカーソルが次のようになるように自動インデントを設定できるようにする必要があります。自動的に適切な位置に配置されます。さらに、タブが占める空白の数をカスタマイズすることもできます。

vi/mを起動するたびにこれを行うことができますが、これらのオプションを〜/ .vimrc で設定して、自動的に適用されるようにする方が簡単です。

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

vi/m環境をカスタマイズするためのその他のオプションについては、オンラインのvimドキュメントを参照してください。

ヒント#15:vimtutorで一般的なVimヘルプ/オプションを入手する

一般的なvi/mスキルを磨く必要がある場合はいつでも、コマンドラインからvimtutorを起動すると、完全なvi/mヘルプが表示され、起動せずに何度でも参照できます。 vi/mで特定のタスクを実行する方法を検索するWebブラウザ。

# vimtutor

vi/mで通常のファイルをナビゲートしているかのように、vimtutorのコンテンツをナビゲートまたは検索できることに注意してください。

概要

この2つの記事のシリーズでは、コマンドラインツールを使用してテキストを編集する際により効果的になるために役立ついくつかのvi/mのヒントとコツを共有しました。他にもあるはずですので、下のフォームを使用して、コミュニティの他のメンバーと自由に共有してください。いつものように、質問やコメントも大歓迎です。