のようなファイルで単語を検索すると/console.log、のすべてのインスタンスconsole.logが強調表示されます。
これらに興味がなくなったら、強調表示が邪魔になることがあります。強調表示を削除するための私の現在の戦略は、次のようなことをすることです/asntehua。この単語の強調表示を削除する適切な方法はありますか?
:nnoremap <silent> <CR> :nohlsearch<CR><CR>。コマンドモードでReturnキーを押すと、強調表示が消えます。
のようなファイルで単語を検索すると/console.log、のすべてのインスタンスconsole.logが強調表示されます。
これらに興味がなくなったら、強調表示が邪魔になることがあります。強調表示を削除するための私の現在の戦略は、次のようなことをすることです/asntehua。この単語の強調表示を削除する適切な方法はありますか?
:nnoremap <silent> <CR> :nohlsearch<CR><CR>。コマンドモードでReturnキーを押すと、強調表示が消えます。
回答:
の代わりに:noh、:let @/=""キーボードショートカットにマッピングするのが好きです。
違いはそれがある:nohので、検索レジスタ内の検索用語を離れるnと、N通常モードで次/前の一致と再ハイライトにジャンプして検索を再開します。使用して:let @/=""、他の一方で、メッセージの原因E25: No previous regular expressionとそれがあったカーソルの葉あなたがまだ知らない場合に特に便利です、ctrl- oまだ、誤ってヒットn。
これは他の方法でも使用できます。vimにジャンプせずにテキストを強調表示させるには、次のことができます。:let @/="some text"
これらの式では、@はレジスタを参照でき、@ /は最後の検索パターンを保持するレジスタです。
入力するだけ
:noh<cr>
(<cr>改行を表す場所、つまりEnter。)このコマンドの完全な非短縮バージョンは:nohlsearchです。
便宜上、次のようなマッピングを持つことができます
nnoremap <Leader><space> :noh<cr>
あなたの.vimrc。私のリーダーはスペースなので、スペースを2回タップするだけで強調表示をクリアできます。(デフォルトで<Leader>は、に設定されています\)
別の一般的なオプションは、これをCtrl+ にバインドすることです。Lこれは多かれ少なかれ「再描画された端末画面」のデフォルトであり、これは大体あなたがしていることです:
nnoremap <silent> <C-L> :nohlsearch<CR><C-L>
これには、端末画面も再描画するという副作用があります。これは、端末接続が遅い場合は遅くなる可能性があります(最近では非常にまれです)。
注:tpope / vim-sensibleを使用している場合は、<C-l>上記のマッピングが既に提供されています。
を使用して検索を行うと、一致は強調表示されません /
:set nohlsearch
:noh
または:nohlsearch(nまたはNが押されるか、新しい検索が実行されるまでクリアします)
nnoremap <esc> :noh<return><esc>
押すとハイライトがクリア\(バックスラッシュ)
nnoremap \ :noh<return>
ESC2回叩く際のハイライトをクリアする
nnoremap <esc><esc> :noh<return>
nnoremap <esc> :noh<return><esc>しましたが、機能してvimrcいません。jk脱出するようにマッピングしましたが、それが理由でしょうか?
ESCキーを無効にした可能性がありますか?
jkても、強調表示されたテキストはオフに切り替わりません(ただし、引き続き機能しますEsc)。Escキーボードの左上でmyを押すと、強調表示されたテキストがオフになります。
jkマップをマップの下に置き、代わりにESCシンプルなものを使用していることを確認してくださいmapnoremap
〜/ vimrcでこれに対するショートカットのいくつかの提案された解決策を試した後、単純に追加nmap <esc><esc> :noh<return>することに決めました。ダブルエスケープは、矢印キーの機能との干渉を防ぎます。挿入モードの場合は、トリプルエスケープが必要です。これはすぐに実行でき、覚えやすいです。
.vimrcにautocmdを追加して、挿入モードに入るたびに強調表示を削除しました。
autocmd InsertEnter * :let @/=""
nohl代わりにlet @/=""を使用する方が、現在の検索を上書きしないため、より良いアプローチです。
:let @/=""コマンドで動作しますが、autocmd InsertEnter * :noh何らかの理由で、理由はわかりませんか?
/asdfasdf
これには、入力する必要がないという利点があります。欠点は、4096バイトのファイルに約1:68719476736の機会があり、これが機能しないことで、カーソルが別の場所にジャンプすることです。この可能性は、ファイルが大きいほど大きくなります。
asdfasdfは、ランダムに選択された8バイトシーケンスよりも、実際のファイルで頻繁に発生するという意味で特別だと思います。したがって、チャンスははるかに高くなります。:-)
hlsを削除するのは良いことだとは思いません。簡単なショートカット(ブール値)の作成を簡単に有効または無効にする方法はありますか->
" to reselect use gv in normal mode
nnoremap <S-F11> <ESC>:set hls!<cr>
inoremap <S-F11> <C-o>:set hls!<cr>
vnoremap <S-F11> <ESC>:set hls!<cr> <bar> gv
!設定の最後に「」があるため、魔法が発生します
/skldafjlksjdf;)