Vimマスタリーが続く:Linux管理者向けのさらに8つの強力なヒント(第2部)

前回のこのシリーズの記事では、vi/mスキルセットに追加する7つのヒントとトリックを見直しました。以前に述べられた理由に加えて、Linuxで効果的にテキストエディターを使用する方法を学ぶことは、システム管理者やエンジニアにとって必須の能力であり、LFCSLFCERHCSA、およびRHCEなどの主要なLinux認定プログラムを合格するための能力です。

それでは、始めましょう。

8. 水平または垂直のVimウィンドウを作成

このヒントは、Yoanderのような読者の一人がPart 1で共有しました。同じメインウィンドウ内で別々のファイルを編集するために、vi/mを複数の水平または垂直の区分で起動できます:上部にtest1、下部にtest2を配置して、vi/mを2つの水平ウィンドウで起動します。

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

vim -o test1 test2 
Launch Vim Editor in Horizontal Windows

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

vim -O test3 test4 
Launch Vim Editor in Vertical Windows

カーソルを1つのウィンドウから別のウィンドウに移動するには、通常のvi/mの移動ルーチン(h:右、l:左、j:下、k:上)を使用します:

  • Ctrl+w k – 上部
  • Ctrl+w j – 下部
  • Ctrl+w l – 左
  • Ctrl+w h – 右

9. Vimで大文字または小文字を変更する

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

  • 一連の文字を大文字に変更するには、カーソルを最初の文字に置き、gUXexモードで入力し、最後にキーボードの右矢印を押します。
  • X個の単語を変更するには、カーソルを単語の先頭に置き、gUXwexモードで入力します。
  • 1行全体を大文字に変更するには、カーソルを行のどこかに置き、gUUexモードで入力します。

例えば、lowercaseの行全体をuppercaseに変換するには、カーソルを行のどこかに置き、gUUと入力します。

Change String to Uppercase in Vim Editor

例えば、2つの大文字小文字に変換するには、最初の単語の先頭にカーソルを置き、gu2w:

Convert String to Lowercase in Vim Editor

10. Vimの挿入モードでテキストを削除

で文字や複数の単語を一度に削除できるexモード(例えば、dwで単語を削除)がありますが、挿入モードでも次のように削除できます:

  • Ctrl + h: カーソルの現在位置にある以前の文字を削除します。
  • Ctrl + w: カーソルの現在位置にある以前の単語を削除します。これを正しく動作させるには、削除する必要がある単語の後の空白スペースにカーソルを置く必要があります。
  • Ctrl + u: カーソルのすぐ左にある文字から現在の行を削除します。

11. Vim内で既存の行を移動またはコピー

カーソルを操作を行う場所に置いた場合にのみ、ddyypコマンドを使用してそれぞれ行を削除、コピー(ヤンク)、貼り付けることができるという事実は間違いありません。

良いニュースは、コピー移動コマンドで、カーソルが現在どこにあるかに関係なく同じことができることです。

次の例では、「永遠に」というタイトルの短い詩を使用します。テリ・ニコル・サーリントン。最初に、Vimで行番号を表示させます(コマンドモードで:set nu – これは余分なヒントと考えてください)。:3copy5を使用して、コマンドモードで3行目を5行目の下にコピーします。

Move Copy Existing Lines in Vim

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

Move Lines in Vim Editor

12. Vimでのパターン一致の移動とカウント

このヒントは、置換コマンド(このシリーズのパート1のヒント#7)に基づいていますが、置換動作がnオプションによってオーバーライドされているため、指定されたパターンの発生回数をカウントすることのみが結果となります。

フォワードスラッシュを省略しないようにしてください。

:%s/pattern//gn 

例えば、

:%s/libero//gn
Count Matches by Search Pattern in Vim

パターンの次の出現箇所に移動するには、exモードでn(小文字のN)を押します。前のインスタンスに移動するには、Nを押します。

13.指定した行でVimでファイルを開く

デフォルトでは、vi/mを起動すると、カーソルは最初に編集された最後の行に配置されます。プログラムを開いて、カーソルを特定の行に直接配置したい場合は、次のトリックを使用できます。

# vim filename +line_number

例えば、forever.txtを開いて、カーソルを6行目に配置します。

# vim forever.txt +6

この例を少し変更してみましょう。パターンが3回目に出現する行でファイルを開きたいとします:

# vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

上記のコマンドが何をするかをもう少し詳しく見てみましょう:

  • grep -in pattern filename – ファイル名からパターンが出現するすべての行を表示し、各出力行の先頭に行番号を付けます。
  • sed -n 3p – 前のパイプラインの出力から3行目を表示します。

最後に、

  • cut -d: -f1 はコロン(:)がフィールドセパレータである前のパイプラインの最初のフィールドを返します。
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1
Open Vim Editor in Specified Line

前のコマンドの結果は、指定された行でプログラムを開くvi/mに渡されます。

14. Vim環境のカスタマイズ

vi/mを使用して設定ファイルを編集したり、コードを書いたりする場合、プログラムを最初に開いたときに行番号を表示できること、

  • Vim for Linux Admins: 8 Powerful Tips and Tricks (Part 2)

を押したときにカーソルが適切な位置に自動的に配置される自動インデントを設定できることが望ましいでしょう。さらに、タブが占める空白の数をカスタマイズしたい場合もあります。

これをvi/mを起動するたびに行うのではなく、~/.vimrcでこれらのオプションを設定すると、自動的に適用されます。

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

さらなるカスタマイズオプションについては、オンライン vim ドキュメントを参照してください。

15. 一般的な Vim ヘルプを取得/Vimtutor で学ぶ

vi/m スキルを向上させたい場合は、コマンドラインからvimtutorを起動することで、vi/m のヘルプをいつでも参照できます。ウェブブラウザを立ち上げる必要はありません。特定のタスクを実行する方法を検索するために使用できます。

vimtutor
Vim Editor Help and Options

Vimtutor のコンテンツをナビゲートまたは検索することができます。vi/m で通常のファイルをナビゲートするかのように。

まとめ

この2部構成の記事では、コマンドラインツールを使用してテキストを編集する際に効果的になるために役立ついくつかの vi/m のヒントとトリックを共有しました。

I’m sure you must have other ones – so feel free to share them with the rest of the community in the comment form below. As always, questions and comments are also welcome.

Source:
https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/