Vim で検索を行った後、すべての出現箇所が強調表示されます。どうすれば無効にできますか?私は今、見つからない意味不明なものをもう一度検索します。
ハイライトを一時的に無効にしてから、必要に応じて再度有効にする方法はありますか?
Vim で検索を行った後、すべての出現箇所が強調表示されます。どうすれば無効にできますか?私は今、見つからない意味不明なものをもう一度検索します。
ハイライトを一時的に無効にしてから、必要に応じて再度有効にする方法はありますか?
次の検索まで強調表示をオフにするには:
:noh
または、強調表示を完全にオフにします。
set nohlsearch
または、切り替えるには:
set hlsearch!
nnoremap <F3> :set hlsearch!<CR>
最後に使用した検索パターンをクリアするには:
:let @/ = ""
どこでも一致するため、これはパターンを空の文字列に設定しません。Vimを起動したときのように、パターンは本当にクリアされます。
http://twitter.com/jonbho/status/2194406821より
" Clear highlighting on escape in normal mode
nnoremap <esc> :noh<return><esc>
nnoremap <esc>^[ <esc>^[
Vim は内部的にエスケープを使用して特別なキーを表すため、2 行目はエスケープ キーへのマッピングに必要です。
私の元の解決策 (以下) は汚くて無駄でした。今使ってる:noh
Vim の多くの機能と同様に、正しい方法は簡単には見つけられないことがよくあります。
--
(こんなことしないで)
ありそうもない文字列を検索します (ホーム行のキーを連打します):
/;alskdjf;
これはvim以下で機能し、@ShaunBouckaertの「最後に使用した検索パターンをクリアする」という論理的にクリーンなソリューションよりも覚えたり入力したりするのが簡単です。
:let @/ = ""
潜在的な欠点は、検索履歴にジャンクが追加されることです.
私の .vimrc.local ファイルに再マップされました。すばやく汚れていますが、非常に機能的です。
" Clear last search highlighting
map <Space> :noh<cr>
nnoremap <cr> :noh<CR><CR>:<backspace>
そうすれば、検索後:noh
にヒットすると、コマンドラインに表示されなくなります。enter
:新しいコマンドの入力を開始するようなもので、コマンドをBackspaceクリアして、フォーカスをエディター ウィンドウに戻します。
私は通常:noh
、バックスラッシュ キーにマップします。強調表示を再度有効にするには、 を押すだけでn、再び強調表示されます。
これは私が使用するものです(さまざまな質問/回答から抜粋):
nnoremap <silent> <Esc><Esc> :let @/=""<CR>
"double"Escを使用すると強調表示が削除されますが、もう一度検索するとすぐに強調表示が再び表示されます。
別の方法:
nnoremap <silent> <Esc><Esc> :noh<CR> :call clearmatches()<CR>
vimのドキュメントによると:
クリアマッチ()
Clears all matches previously defined by |matchadd()| and the |:match| commands.
Janus for VIM および GVIMには、私のような初心者向けの機能が多数組み込まれています。
<leader>hs - toggles highlight search
これはまさにあなたが必要とするものです。\hs
通常モードで入力するだけです。(リーダー キーはデフォルトで にマップさ\
れます。)
HTH。
updatetime
これにより、ミリ秒の非アクティブ 後に検索の強調表示がクリアされます。
updatetime
デフォルトは 4000 ミリ秒または 4 秒ですが、私は 10 秒に設定しました。はこれ以上のことを行うことに注意することが重要なupdatetime
ので、変更する前にドキュメントを読んでください。
function! SearchHlClear()
let @/ = ''
endfunction
augroup searchhighlight
autocmd!
autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END
強調表示をすばやく有効/無効にしたい場合は、キーをにマップできます
" Press F4 to toggle highlighting on/off, and show current value.
:noremap <F4> :set hlsearch! hlsearch?<CR>
上記のスニペットを .vimrc ファイルに入れるだけです。
これは、歌うキーストロークで検索ハイライトを表示および非表示にする最も便利な方法です
詳細については、ドキュメントhttp://vim.wikia.com/wiki/Highlight_all_search_pattern_matchesを確認してください。
上位 2 つの回答を組み合わせたもう 1 つの解決策:
"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>
:noremapを使用して、このように検索結果のオン/オフを切り替えることができます
:noremap <F3> :set hls! hls?<CR>
@baruch-even の回答に基づいて、通常モードで次のようにESCダブルプレスで検索語を削除できます。
nnoremap <esc> :let @/ = ""<return><esc>
nnoremap <esc>^[ <esc>^[
@ShaunBouckaert と 2009 年 3 月 19 日 16:22 の回答を混在させることは、良い妥協点だと思います。
" Reset highlighted search
nnoremap <CR> :let @/=""<CR><CR>
を押すEnterと、強調表示されたテキストは強調表示されなくなりますが、検索の強調表示は有効のままです。
私も好きじゃない。いつも入力するのは面倒だと思った:nohl
ので、次のマッピングを私の.vimrc
noremap <C-_> :nohl<cr>:<backspace>
最初のビット ( :nohl<cr>
) は強調表示をクリアします。2 番目のビット ( ) は、コマンド ラインをきれい:<backspace>
にするためのトリックです。検索はまだバックグラウンドで行われているため、単純にヒットすると、再ハイライトされて次の検索に移動します。n