GNU/Linux >> Linux の 問題 >  >> Linux

システム管理者向けの上位5つのVimプラグイン

昨年、私はOpensource.comの開発者向けの5つの便利なVimプラグインの記事を書きました。この記事は同様の考え方に従いますが、使用するスクリプト、プログラミング言語、またはフレームワークに関係なく、システム管理者の生産性を高めるプラグインに焦点を当てています。この記事では意図的にカバーされていない、コード補完と構文チェックに焦点を当てた別のクラスのVimプラグインがあります。それらは別の投稿のトピックになります。

また、この記事では、これらのプラグインのインストール手順については説明していません。 Vim8のネイティブパッケージマネージャーまたはお気に入りのプラグインマネージャーを使用できます。 Vim用の飾り気のないプラグインマネージャーが必要な場合は、Pathogenをご覧ください。 .vim / bundle の直下にリポジトリを複製することにより、プラグインをインストールする標準的な方法を提供します。 自動ヘルプ生成を備えたディレクトリ。

1。 Vim Airline

Vim Airlineは、標準のVimステータスラインを派手で便利なステータスバーに置き換えるプラグインです。 Vim Airlineは便利で、ファイル名と保存ステータス、Vimモード、ファイルタイプ、エンコーディング、位置、単語数など、作業中のファイルに関する役立つ情報を提供します。

VimAirlineは高速で軽量です。 Vimのパフォーマンスを損なうことなく関連情報を表示します。 Vim Airlineを使用すると、一目で取得するのに追加の時間が必要になる情報が提供されるため、生産性が向上します。

インストール後、Vim Airlineは、Vimの構成ファイルを変更する必要のない基本構成を有効にします。航空会社の標準ステータスバーは次のとおりです。

他のプラグインとネイティブに統合して、追加情報を表示します。たとえば、Vim Gitgutter(下記の#4 Vim Gitgutterを参照)またはVim Fugitive(下記の#5 Vim Fugitiveを参照)がある場合、Airlineはブランチ名や差分ステータスなどのGit関連情報も表示します。

Gitブランチアイコンなどの特別なアイコンを使用するには、Powerlineフォントパッケージをインストールし、VimAirlineで有効にします。次に、この行を .vimrcに追加します 構成ファイル:

let g:airline_powerline_fonts=1

ステータスバーに加えて、Vim Airlineはオプションで、開いているすべてのタブまたはバッファの名前を含むタブ行を上部に表示します。

この機能を有効にするには、この行を .vimrcに追加します :

let g:airline#extensions#tabline#enabled = 1

最後に、Vim Airlineは、ステータスバーの機能と外観に追加の柔軟性を与えるテーマを提供します。詳細については、リポジトリvim-airline-themeを確認してください。

このプラグインとユースケースに役立つ可能性のある追加オプションの詳細については、公式リポジトリを参照してください。

2。 NERDTree

NERDTreeはVimのファイルシステムエクスプローラーであり、ディレクトリ構造を参照して、Vimのインターフェイス内でファイルやディレクトリを直接検索および管理するのに役立ちます。 NERDTreeは、Vimのネイティブファイルエクスプローラーnetrw。に代わるものです。 NERDTreeには追加機能と実用的なデフォルトが含まれているため、 .vimrcに設定を追加しなくても簡単に開始できます。 ファイル。

インストール後、コマンド:NERDTree を入力して、NERDTreeを使用できます。 。現在のディレクトリが選択されたサイドウィンドウとして開きます。これを閉じるには、コマンド:NERDTreeCloseを入力します。 。 :NERDTreeToggleを使用することもできます 開いているウィンドウと閉じているウィンドウを切り替えます。このコマンドを別のキーにマップして、NERDTreeを簡単に開いたり閉じたりすることもできます。たとえば、ファンクションキー F5を使用するには NERDTreeを制御するには、次のマッピングを構成ファイルに追加します。

map <F5> :NERDTreeToggle<CR>

次に、 F5を押します NERDTreeを開くには:

NERDTreeを開いた状態で、Vimナビゲーションキー jを使用してディレクトリ構造をナビゲートできます。 およびk Enterを押します ディレクトリ上で展開または折りたたみます。デフォルトでは、NERDTreeはディレクトリをツリー形式で表示します。 Enterを押します 通常のファイルで、元のウィンドウを使用して開きます。 iを押すこともできます 水平分割またはsを使用してファイルを開く 垂直分割の場合。 を押します コマンドの完全なリストに関するヘルプを表示するには。

もう1つの便利な機能は、 mを押すことです。 メニューを表示します。次に、NERDTreeを使用して、ファイルやディレクトリの作成、名前変更、コピー、移動などのファイルシステム操作を実行できます。

NERDTree Menu. Use j/k/enter, or the shortcuts indicated
=========================================================
> (a)dd a childnode
  (m)ove the current node
  (d)elete the current node
  (r)eveal the current node in file manager
  (o)pen the current node with system editor
  (c)opy the current node
  print (p)ath to screen
  (l)ist the current node

NERDTreeは、コマンドラインや別のファイルシステムエクスプローラーアプリケーションにアクセスしなくても、Vim内でファイルを検索および管理できるようにすることで、生産性を向上させます。

[Linuxの基本:vimを使用したテキスト編集の初心者向けガイド]

3。 Fzf Vim

NERDTreeは、ディレクトリ構造をナビゲートし、Vimで動作するファイルを見つけるのに役立つ優れたプラグインです。ただし、ディレクトリ構造が大きい場合や、ファイルの場所が正確にわからないままファイルを探している場合は役に立ちません。このような場合は、あいまい検索ツールが便利です。

fzf.vimは、コマンドラインのあいまい検索プログラムfzfをラップするプラグインであり、Vim内で直接使用できます。 Fzfは、Goで記述された高速でポータブルなあいまい検索ツールです。これはVimプラグインの要件なので、必ず最初にインストールしてください。

Fzfに加えて、プログラムbatをインストールして、Fzfによって表示されるプレビューウィンドウで構文の強調表示を有効にすることができます。

デフォルトでは、fzf.vimは画面の下部に検索ウィンドウを開きます。これを変更してウィンドウを中央に移動し、プレビューウィンドウのサイズを大きくするには、これらの2行を .vimrcに追加します。 構成ファイル:

let g:fzf_preview_window = 'right:50%'
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6  }  }

次に、コマンド:Files を入力して、現在のディレクトリ内のすべてのファイルであいまい検索を実行します。 。 fzf.vimは、利用可能なすべてのファイルを一覧表示するウィンドウを開きます:

使用可能なオプションをフィルタリングするには、ファイル名、拡張子、またはディレクトリの任意の部分から任意の文字の入力を開始します。 Fzfは自動的に結果をフィルタリングします。たとえば、必要なファイルが「YAML」ファイルであることを覚えている場合は、 yと入力し始めます 次にm 結果がどのように変化するかを確認します:

文字が一緒である必要はなく、入力した順序と同じである必要もありません。これがあいまいな発見の目標です。フィルタに満足したら、矢印キーを使用して残りのエントリを選択してプレビューし、 Enterを押すことができます。 目的のものを開きます。 Ctrl + Tを使用することもできます 、 Ctrl + X 、または Ctrl + V ファイルを新しいタブ、分割、または垂直分割でそれぞれ開きます。

fzf.vimを使用してファイルを検索することは非常に役立ちます。ただし、fzf.vimは、ファイルを見つけるだけではありません。 fzfをラップします 他のVim機能または他の外部コマンドを使用したコマンド。現在のディレクトリ構造内の複数のファイルを検索できます。

たとえば、コマンド:Buffersを使用します 現在開いているバッファのリストを検索します。 :GFiles、を使用 fzf.vimを使用すると、現在のGitリポジトリで管理されているすべてのファイルを検索できます。コマンド:Lines ロードされたすべてのバッファのすべての行であいまい検索を実行できます。 Enterを押す 正しいバッファの特定の行に移動します:

fzf.vimでは、コマンド:Mapsを使用してVimキーバインディングを検索することもできます。 。特定のコマンドをマップしたキーバインディングを忘れた場合は、fzf.vimを起動し、コマンドの数文字を入力すると、マップされたキーバインディングが表示されます。 Enterを押す エントリでコマンドを実行します。たとえば、VimNERDTreeでVimNERDTreeにマッピングしたキーを見つけるには(上記の#2 NERDTreeを参照):

Fzfは高速であり、fzf.vimプラグインとVimの統合により、ファイルやその他のアイテムの検索を支援する優れたツールになります。このプラグインには他にも多くの機能があります。コマンド:h fzf を入力して、必ずヘルプを参照してください。 完全なリストについては。

4。 Vim Gitgutter

プラグインVimGitgutterは、バージョン管理システムとしてGitを使用しているユーザーに役立ちます。これは、Git diffの出力を「ガター」(Vimが行番号などの追加情報を表示する記号列)の記号として表示します。たとえば、このAnsibleタスクファイルをGitで現在コミットされているバージョンと見なします:

  1 ---
  2 # tasks file for mywebapp
  3 
  4 - name: Include OS-specific variables.
  5   include_vars: "{{ ansible_os_family }}.yaml"
  6  
  7 - name: Install http package
  8   yum:
  9     name: "{{ httpd_package }}"
 10 
 11 - name: Ensure httpd svc started
 12   service:
 13     name: "{{ httpd_service }}"
 14     state: started
 15     enabled: yes

いくつかの変更を加えた後、VimGitgutterはガターに次の記号を表示します。

    1 ---
    2 # tasks file for mywebapp
    3 
    4 - name: Include OS-specific variables.
    5   include_vars: "{{ ansible_os_family }}.yaml"
    6 
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

- 記号は、15行目以降の行が削除されたことを示します。 文字は、7行目が変更されたことを示し、 + 記号は、10行目が追加されたことを示します。

さらに、Vim Gitgutterを使用すると、 [c を使用して、ファイルに加えられた個々の変更である「ハンク」間を移動できます。 および]c 、または Leader + hs を押して、コミットのために個々のハンクをステージングすることもできます 。

Vim GitgutterはVim-Airlineとも自動的に統合され、ステータスラインの変更の概要を提供します。

Vim-Airlineはデフォルトでこの構成を有効にしており、 .vimrcに何も追加する必要はありません。 それを機能させるためのファイル。

Vim Gitgutterは、変更に対する視覚的なフィードバックを即座に提供します。Gitを使用している場合は、ツールボックスに追加するのに最適です。

5。 Vim Fugitive

Vim Fugitiveは、GitをVimワークフローに取り込もうとしている人にとってもう1つの優れたプラグインです。このプラグインは、Vimのインターフェースから直接Gitコマンドを実行できるようにするGitラッパーです。このプラグインには多くの機能があるため、追加情報についてはGithubページを確認してください。

これは、VimFugitiveを使用した基本的なGitワークフローの例です。 Vim Gitgutterで例として使用したAnsibleタスクファイルについて考えてみます(上記の#4 Vim Gitgutterを参照)。 git blameを使用できます コマンド:Gblameを入力してVimで :

7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    1 ---
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    2 # tasks file for mywebapp
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    3
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    4 - name: Include OS-specific variables.
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    5   include_vars: "{{ ansible_os_family }}.yaml"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    6
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|~   7 - name: Ensure httpd package installed
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    8   yum:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    9     name: "{{ httpd_package }}"
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|+  10     state: present
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   11
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   12 - name: Ensure httpd svc started
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   13   service:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   14     name: "{{ httpd_service }}"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|_  15     state: started

まだコミットされていない7行目と10行目を除いて、誰がすべての行をコミットしたかを確認できます。次に、:Gstatus と入力して、リポジトリのステータスを確認します。 :

  1 Head: master
  2 Push: origin/master
  3 
  4 Unstaged (1)
  5 M main.yaml
~
___________________________________________________________________________________________
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

Vim Fugitiveは、 git statusの結果で分割ウィンドウを開きます 。 -を押すと、ファイルをコミット用にステージングできます ファイル名の行にキーを押します。 -を押すと、ステータスをリセットできます また。メッセージは、新しいステータスを反映するように更新されます:

  1 Head: master
  2 Push: origin/master
  3 
  4 Staged (1)
  5 M main.yaml

4行目のステータスがステージングされていないから変更されていることに注意してください 段階的へ 。これで、コマンド:Gcommitを使用できます。 変更をコミットします。 Vim Fugitiveは、コミットメッセージを入力できる別の分割を開きます:

  1 Update Ansible tasks file
  2 # Please enter the commit message for your changes. Lines starting
  3 # with '#' will be ignored, and an empty message aborts the commit.
  4 #
  5 # On branch master
  6 # Changes to be committed:
  7 #       modified:   main.yaml
  8 #

:wqを使用してファイルを保存します コミットを完了します。 Fugitiveは、新しいコミットハッシュを含む確認メッセージを表示します:

[master f7908cf] Update Ansible tasks file
 1 file changed, 2 insertions(+), 2 deletions(-)
Press ENTER or type command to continue

:Gstatusを使用できます 結果と:Gpushをもう一度確認します 新しいコミットでリモートリポジトリを更新するには:

  1 Head: master
  2 Push: origin/master
  3
  4 Unpushed to origin/master (1)
  5 f7908cf Update Ansible tasks file

Vim Fugitiveが好きで、詳細を知りたい場合は、公式リポジトリに追加の機能とワークフローを示すスクリーンキャストへのリンクがあります。

ボーナス:Vim Floaterm

Vim Floatermは、Vim8ターミナル機能をポップアップウィンドウとして使用できるようにするプラグインです。

タスクを完了するために、ターミナルでコマンドを入力しなければならない場合があります。 Vim 8が:terminalを提供する前 機能、解決策は、コマンドラインを使用するために別の画面に切り替えるか、Vimを終了することでした。内蔵のVimターミナルを使用すると、Vimから直接ターミナルウィンドウを開くことができます。ただし、このウィンドウは編集領域の一部であるか小さすぎるため、常に変更する必要があります。

Vim Floatermは、ターミナルをフローティングウィンドウとして作成し、使用する必要があるときにいつでも表示または非表示にできるようにすることで、これらの問題を解決します。コマンド:FloatermNewを使用します 新しいフローティング端末と:FloatermHideを作成します それを隠すために。 :FloatermToggleを使用することもできます 状態を切り替えます。フローティング端末は次のようになります:

フローティング端末の表示と非表示を簡単にするために、コマンドを別のキーにマップできます。たとえば、ファンクションキー F12を使用するには Floatermを制御するには、この構成を .vimrcに追加します ファイル:

let g:floaterm_keymap_toggle = '<F12>'

次の2つの構成行で、Vim画面サイズのパーセンテージとして幅と高さを指定することにより、フローティング端末のサイズを増やすこともできます。

let g:floaterm_width = 0.9
let g:floaterm_height = 0.9

この構成では、Vimの画面サイズの90%を占めるフローティング端末が作成されます。 Floatermは、他のプラグインやコマンドラインツールとの多くの追加機能と統合を提供します。 :h floaterm-contentsでヘルプを参照してください または、詳細については公式リポジトリを参照してください。

[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]

次は何ですか?

この記事では、システム管理者がワークフローを改善し、Vimを使用する際の生産性を向上させるのに役立つ5つのプラグインとボーナスを確認しました。

Vimは、箱から出してすぐに多くの機能を提供する優れたエディターです。プラグインを使用すると、新しい機能が追加され、Vimを特定のワークフローに簡単に適合させることができます。

この記事のプラグインは、ファイルの検索、情報の提供、Gitでのバージョン管理されたファイルの処理などの一般的な機能に焦点を当てています。 Vim構成のさまざまな側面を管理するプラグインの他のクラスがあります。次の記事では、コードの補完と構文チェックについて説明します。

プラグインfzf.vimとVimFloatermを紹介してくれた同僚のDavidWardに特に感謝します。


Linux
  1. システム管理者向けの10のコンテナガイド

  2. Linuxシステム管理者向けのAnsibleの謎を解き明かす

  3. Linux管理者向けのトップ10チュートリアル

  1. システム管理者向けの3つの確かな自己レビューのヒント

  2. 上位の1行のLinuxコマンド、VMイメージのカスタマイズ、およびシステム管理者向けのその他のヒント

  3. システム管理者が感謝している上位15の記事

  1. ライターのためのトップLinuxツール

  2. SysAdmins用の80のLinux監視ツール

  3. Openbsdのトップに代わる有効な方法は?