コマンドラインモードでviを使用する方法


10

常にホームポジションのままでコマンドラインモードを操作する方法はありますか?

特に、次の2つのアクションは面倒で、指を矢印キーに移動する必要があります。

  1. 動き回る:通常の位置のままでコマンドラインモードで前後に移動する方法はありますか?
  2. コマンドラインにコピーして貼り付けるにはどうすればよいですか?コマンドライン自体の一部から別の部分、またはテキストやクリップボードからの両方をコピーすることを意味します。

1
両方でコマンドラインウィンドウを使用して解決できます:q。これは、使用可能な、「バッファ様」ウィンドウの新しいオープンしhjkl、運動のためyなど、ヤンクのために
マーティンTournoij

1
@Carpetsmoker(つまりq:、でしょ?)たまたま行ったことがありますが、実際に使うことは考えていませんでした。それは/(検索)とは動​​作しないようです。
Shahbaz

おっと、はい、私はqを意味しました:...あまり使用しなかったので、完全な/適切な回答を提供することはできません...
Martin Tournoij

回答:


17

ありますコマンドラインでは(あなたが知っている)、そしてありますコマンドラインウィンドウ(あなただけの他の同じよう編集することができ、特別なバッファ内のコマンドラインは、)。あなたはどちらかを経由して、これを入力します<C-f>(またのためのコマンドラインから/専用経て通常モードから直接あなたがより多くの「編集力」の必要性を感じたときに検索など)、またはq:q/コマンド、など。

詳細については、をご覧ください:help command-line-window


4
<C-f>コマンドの途中ですでに機能するため、知っておくと非常に便利です。
Shahbaz

1
同意する; これ:はほぼ自動的に行われるので、通常モードに戻らずに切り替えられるのは良いことです。
Ingo Karkat 2015年

11

コマンドラインウィンドウを提供することに加えて、Vimはコマンドラインモードで(矢印キー使用せずに)コマンドラインを操作できるいくつかの制限された機能も提供します。

移動

  • <ctrl-b> カーソルをコマンドラインの先頭に移動する
  • <ctrl-e> カーソルをコマンドラインの最後に移動する

編集

  • <ctrl-h> カーソルの前の文字を削除します(バックスペースのように)
  • <ctrl-w> カーソルの前の単語を削除する
  • <ctrl-u> カーソルからコマンドラインの先頭まで完全に削除する

もちろん、コマンドラインマッピングを追加して:cnoremap特定の他のプログラムのナビゲーションキーをエミュレートすることもできます。または、Tim PopeのRSIプラグインをインストールして、事実上の標準のReadlineバインディングを使用します。

貼り付け

コマンドラインのカーソル位置に<ctrl-r>あるレジスタを指定する文字を押して、レジスタの内容を貼り付けることができます。たとえば<ctrl-r>+クリップボードの内容をコマンドラインに挿入します。<ctrl-r>"「名前のない」レジスタの内容(つまり、最後の削除またはヤンクの内容)を挿入します。

参照してください。:help cmdline.txt上記のすべての詳細については。


1
驚くばかり!<ctrl-r>特に役立ちます。
Shahbaz

はい、私は^Rマクロにも使用しました。マクロの実行中にファイルの一部をヤンクし、後でマクロの実行中に、長いExモードコマンドでを使用して、ヤンクした部分を使用することにより、テキストの非常にトリッキーな操作を実行できます^R。:)
ワイルドカード2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.