set -o viを使用する利点

set -o viを使用する利点

私は多くの開発者がこのコマンドを使用してviにオプションを設定するのを見ました。まだこれの本当の目的を理解していませんか?

bashコマンドを使用してviに切り替えるとどうなりますか?

答え1

readline編集をemacs(デフォルト)またはvi()に設定すると、デフォルトで選択したエディタset -o viとシェル全体で編集コマンドが標準化されます1。

したがって、シェルでコマンドを編集するには、テキストエディタと同じcommand2を使用できます。つまり、1つのコマンド構文しか覚えていない(十分でない場合)、両方の環境で編集が速くなり、エラーの可能性が低くなる可能性があります。

シェル履歴からコマンドを抽出してクリックしてEscapeコマンドモードに入り、次にをクリックするとv$ EDITORが開き、コマンドがロードされ、viモードでこの関係をさらに活用できます。更新複雑な編集。コマンドをうまく編集すると、その:wqコマンドはシェルで実行されます。


もちろん、これはEmacsまたはVi / mをエディタとして使用していると仮定します。
2. またはより正確には…

答え2

Android用ConnectBotなどのモバイルSSHクライアントを使用している場合、Viモードは有用性を大幅に向上させます。

これは、修飾子キーへの依存度が減少したためです。

Vimは、Android UIに組み込まれている基本的な編集方法を含む仮想キーボードを使用して、スマートフォンやタブレットで他のものよりも使いやすくなります。皮肉なことに、プラットフォーム独自の編集ウィジェットを使用してインスタントメッセージを編集するよりも、SSHセッションでVimを使用してCソースコードを編集する方が簡単です。

Shell viモードは同様の利点を提供します。

答え3

viモードとタスクを使用して、コマンドラインから内容を編集できます。

たとえば、説明するとより明確になります。

あなたは入力cp tmp/some_other_long_directory/file1.xt /tmp2/some_other_xtra_long_dir/

しかし、エラーが発生します。file1.txtnotと入力する必要があります。file1.xt

いいえこのオプションの設定では、上向き矢印を押してから左矢印を押して繰り返し.xtますt。総キー入力:37

そしてこのオプションを設定したら(たとえば)上矢印を1回押し、次にEscapeを押してコマンドモードに入り、0を押して行の先頭に移動し、次に移動し、挿入モードに入り、欠落している/xt[return]tを入力します。xtできます。i。これはいくつかの点で非常に複雑に見えるかもしれませんが、vimユーザーなら、これらのコマンドはすでに非常によく知られています。総キー入力:9

答え4

最大の利点は、コマンドラインでスキーマを編集できることです。 Vimに慣れていて、Vimの概念が好きなら、その利点は明らかです。経験がある場合は、指の筋肉を記憶することでbashコマンドを非常に高速に編集できます。

気づく:モード編集が気に入らなくても(デフォルト)emacsモードを利用する方法を学ぶ必要があります。以下は、いくつかの便利なキーボードショートカットです。これはすべてのプロセスで機能しますreadlinebash

関連情報