bash-support プラグインを使用して Vim を Bash-IDE にする
この投稿は SathiyaMoorthy によって書かれました。
この記事は、進行中の Vi / Vim のヒントとテクニック シリーズの一部です。 Linux のシステム管理者またはプログラマーは、bash シェル スクリプトのコーディング中に、次の反復タスクを実行できます。
- ファイル ヘッダーの追加
- 関数/フレーム コメントの追加
- デフォルトのコード スニペットを含む
- 構文チェックの実行
- 関数に関するドキュメントを読む
- コード ブロックをコメントに、またはその逆に変換する
bash-Support Vim プラグインは、上記のすべてを行う最も簡単な方法を提供し、多くの時間とキーストロークを節約します。
このプラグインは、プラグインの目的を説明する Fritz Mehner によって作成されましたas:「メニューとホットキーを使用して BASH スクリプトを作成し、実行します。」
この記事では、3 つの簡単な手順でプラグインをインストールする方法と、プラグインの 8 つの強力な機能について説明します。
bash-support プラグインをインストールする 3 つのステップ
ステップ 1:bash-support プラグインをダウンロードする
vim.org Web サイトからプラグインをダウンロードします。
$ cd /usr/src $ wget -O bash-support.zip https://www.vim.org/scripts/download_script.php?src_id=9890
ステップ 2:bash-support Vim プラグインをインストールする
$ mkdir ~/.vim # if the directory does not exist already $ cd ~/.vim $ unzip /usr/src/bash-support.zip
ステップ 3:~/.vimrc でプラグインを有効にする
~/.vimrc に次の行を追加して、Vim エディターのプラグインを有効にします。
$ vim ~/.vimrc filetype plugin on
Bash Vim プラグインの 8 つの強力な機能
機能 1:*.sh ファイルに自動ヘッダーを追加
拡張子が .sh のファイルを開くと、以下に示すようなヘッダー付きのファイルが開きます。これにより、挿入モードの [説明] フィールドにもカーソルが置かれます。
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: (), # COMPANY: # VERSION: 1.0 # CREATED: 02/14/09 15:42:08 IST # REVISION: --- #============================================================
AUTHOR と COMPANY のデフォルト値を変更するには、~/.vimrc に次の行を追加します
let g:BASH_AuthorName = 'SathiyaMoorthy' let g:BASH_Email = '[email protected]' let g:BASH_Company = 'Open Source Corporation'
ここで、新しい bash スクリプト ファイルを作成すると、以下に示すように、AUTHOR と COMPANY の変更された値が表示されます。
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: SathiyaMoorthy (), [email protected] # COMPANY: Open Source Corporation # VERSION: 1.0 # CREATED: 02/14/09 15:39:58 IST # REVISION: --- #============================================================
注: カスタム フィールドをヘッダーに追加するには、~/.vim/perl-support/templates/bash-file-header ファイルを変更し、独自のカスタム フィールドを追加します。
機能 2:\sfu を使用して Bash 関数を追加する
サブルーチンを作成するには、通常モードで \sfu と入力します。これにより、関数名の入力が求められ (下の図 1 に示すように)、デフォルトの関数内容でサブルーチンが挿入されます (下の図 2 に示すように)。
図 1: \sfu と入力して、シェル スクリプト内に bash 関数を追加します
図 2: シェルスクリプト内に自動的に追加される Bash 関数
機能 3:\cfu を使用して関数ヘッダーを挿入する
関数ヘッダーを挿入するには、通常モードで \cfu と入力します。これにより、図 3 に示すようにコメントが表示されます。
図 3: \cfu と入力して、シェル スクリプト内に関数ヘッダーを挿入します
機能 4:\cfr を使用してフレーム コメントを追加する
フレーム コメントを追加するには、通常モードで \cfr と入力します。これにより、図 4 に示すように、次のような書式設定されたコメントが表示されます。
図 4: \cfr と入力して、シェル スクリプト内にフレーム コメントを挿入します
機能 5:シェル スクリプト内に Bash ステートメントを挿入する
ステートメントを挿入するためのショートカット キーは次のとおりです。
- \sc ケースイン…esac
- \sl エリフなら
- \sf やり遂げるため
- \sfo for ((…)) do done
- \si もしそうなら、フィ
- \sie if then else fi
- \ss で選択してください
- \st 完了するまで
- \sw している間に
- \sfu 関数
- \se echo e "\n"
- \sp printf "\n"
例:シェル スクリプト内に Case ステートメントを自動的に挿入する
\sc は、図 5 に示すように、case ステートメントを挿入し、INSERT モードの case ステートメントの横にカーソルを置きます。このように、前述のすべてのショートカット キーストロークを使用して、表 1 の適切なステートメントを取得できます。
図 5: \sc と入力して、bash シェル スクリプト内に case ステートメントを挿入します
機能 6:\nr を使用して、定義済みのコード スニペットを Bash スクリプトに挿入する
コード スニペットは、それぞれ \nr と \nw を使用して読み書きできます。プラグインには、コードに挿入できる定義済みのコード スニペットがいくつか付属しています。以下は、プラグインに付属するデフォルトのコード スニペットです。
$ ls -1 ~/.vim/bash-support/codesnippets/ assert basename+pathname basename-function check-number-of-command-line-arguments create-tempfile create-tempfile-with-trap free-software-comment read-and-split-into-array timestamp usage-and-command-line-arguments.noindent use-file-descriptor-read use-file-descriptor-write well-behaved-script
check-number-of-command-line-arguments コード スニペットを含めるには、\nr を押すと、ファイル名を求めるプロンプトが表示されます。ファイル名を check-number-of-command-line-arguments として指定すると、次のコードがシェル スクリプトに自動的に挿入されます。
#----------------------------------------------------------------------- # Check number of command line arguments #----------------------------------------------------------------------- if [ $# -lt 1 ] then echo -e "\n\tUsage: ${0##/*/} File\n" exit 1 fi
注: 独自のコード スニペットを定義して、~/.vim/bash-support/codesnippets/ の下に配置できます。また、既存のコードから独自のコード スニペットを作成することもできます。コード スニペットとして作成する必要があるコードの部分を選択し、\nw を押して、それにファイル名を付けます。次回からは、\nr とファイル名を入力して、カスタム コード スニペットを取得してください。
機能 7:Bash 組み込みコマンドのクイック ヘルプ
bash ビルトインのヘルプ ページを読む必要がある場合は、カーソルが単語内にあるときに \hh を使用します。
次の例 (図 6) では、read bash 組み込みコマンドが選択され、\hh が入力され、read コマンドのクイック ヘルプが表示されます。同じ方法を使用して、すべての bash 組み込みコマンドのクイック ヘルプを取得します。
図 6: \hh と入力すると、選択した bash 組み込みコマンドに関するヘルプが表示されます
機能 8:注目のコメント
次のコマンドは、対応するキーワード コメントを追加します。たとえば、シェル スクリプト内に BUG コメント行を追加するには、\ckb と入力します。
- \ckb キーワードのバグ
- \ckt キーワードTODO
- \ckr キーワードトリッキー
- \ckw キーワード警告
\ckt と入力して、「# :TODO:mm/dd/yy::」というキーワードを含むコメント行を追加します。これは基本的に TODO として機能するコメント行であり、後で実行したい項目を入力できます。
図 7: \ckt と入力して、bash シェル スクリプト内に TODO を追加します
bash-support プラグインには強力な機能がたくさんあります。詳細については、ドキュメントを参照してください。ドキュメントは、システムの次の場所にあります。
- README :~/.vim/README.bashsupport
- PDF :~/.vim/bash-support/doc/bash-hot-keys.pdf
- オンラインの bash サポート vim プラグイン ドキュメント
- このプラグインには、:h bashsupport で表示できるヘルプ ファイル (bashsupport.txt) が付属しています
- [ :helptags ~/.vim/doc でヘルプ タグを生成し、:h bashsupport を発行する]
- このプラグインの追加のスクリーンショット
推奨読書
Vim 101 ハック、Ramesh Natarajan 著 .私はコマンドライン中毒です。だから当然、私は Vi と Vim エディターの大ファンです。数年前、Linux で多くの C コードを書いていたとき、利用可能な Vim エディターのヒントとコツをすべて読んでいました。私の Vim エディターの経験に基づいて、Vim エディターで高速かつ生産的になるさまざまな高度な Vim 機能に関する 101 の実用的な例を含む Vim 101 Hacks eBook を作成しました。数年間 Vi および Vim エディタを使用しており、この本をまだ読んでいない場合でも、ぜひこの本を読んでください。 Vim エディターの機能に驚かれることでしょう。
-
PowerToys を使用して Windows 10 で任意のキーをすばやく再マッピングして作業を楽にする方法
Windows 10 のキーボード ショートカットを別のものに変更したいと思ったことはありませんか?これまで、キーまたはキーボード ショートカットを再マッピングするプロセスには、通常、使いにくいサードパーティ アプリケーションをダウンロードする必要がありました。 PowerToys を使用すると、キーボードの任意のキーを他のキーと同じように機能させたり、キーボード ショートカットを再マッピングしたりすることができます。 任意のキーをリマップ PowerToys を使用すると、任意のキーを別のキーに再マップしたり、キーボード ショートカットの組み合わせを変更したりすることも簡単です。 Powe
-
仕事を楽にして楽しくする 8 つの MacBook トラックパッド ジェスチャー
一方、高級な Windows と比較して、Mac はナンセンスなコンピューターと見なされています。しかし、それは MacBook を使用するときにすべてがつまらないという意味ではありません。スクロール、右クリック、左クリックなどの通常のトラックパッド機能にはすでに慣れているはずです。MacBook のトラックパッドには、見かけ以上の機能があり、いくつかのジェスチャ ベースのコントロールが装備されています。これらのコントロールは、タッチ スクリーン デバイスのジェスチャ コントロールとほぼ同じように機能し、MacBook での操作がさらに楽しくなります。したがって、これらのコントロールがどのよう