2017-03-18 15 views
4

vimで代替コマンドを実行した後で強調表示されたテキストを消去する方法はありますか?例えば、私は実行すると、コマンドの実行ドキュメント内のすべてのテキストが強調表示された後代替コマンド実行後に選択を解除する

:'<,'>s/<\([^>].*\)>/<!--\1-->/ 

は、HTMLファイル内の現在の行をコメントアウトすると、私は選択をクリアするためにスペースキーを押さなければなりません。

代替コマンドの直後またはその一部として追加できるものはありますか?コマンドが実行された後に自動的に選択がクリアされるので、クリアするためにスペースバーを押す必要はありませんか?

答えて

2

まあ、<Space>はデフォルトで何もクリアしないので、:nohl<CR>のようなものにマップされている必要があります。したがって、置換後に<Space>にマップしたコマンドを実行する必要があります。

これをすることによって行われ、 "連鎖" Exが|でコマンド:

:'<,'>s/<\([^>].*\)>/<!--\1-->/|nohl 
+0

yeap正しいです。私は 'map :noh 'のようにマップされたスペースを持っています。サブコマンドの後にセミコロンで ':noh'を連鎖しようとしましたが、もちろん動作しませんでしたが、bar chainコマンドは要求通りに動作します。実行する必要がある以外は' <,'> s/<\([^> 'です。 * \)>//|:nohl'もコロンで置き換えます。 – commnux