回答:
通常モードの場合:
:set hlsearch
その後のコマンドでパターンを検索/
ノーマルモードで、または<Ctrl>o
続く/
挿入モードで。*
通常モードでは、カーソルの下にある単語の次の出現箇所を検索します。hlsearch
設定されている場合のオプションは、それらのすべてをハイライト表示されます。#
単語の前の出現を検索します。
前の検索のハイライトを削除するには:
:nohlsearch
:nohlsearch<CR>
いくつかの便利なキーにマップすることをお勧めします。
*
か#
によって、<Ctrl>o
通常モードで。
:nohlsearch
、次のように使用できます:noh
.vimrc
:noremap <F4> :set hlsearch! hlsearch?<CR>
ハイライトの切り替えとハイライトの削除を切り替えます<F4>
。
*
キーは、カーソルの下にある単語の出現をすべて強調表示されます。
&hlsearch
。
#
。
本当に古い質問であることはわかっていますが、誰かがこの機能に興味がある場合は、このコードを確認できます http://vim.wikia.com/wiki/Auto_highlight_current_word_when_idle
" Highlight all instances of word under cursor, when idle.
" Useful when studying strange source code.
" Type z/ to toggle highlighting on/off.
nnoremap z/ :if AutoHighlightToggle()<Bar>set hls<Bar>endif<CR>
function! AutoHighlightToggle()
let @/ = ''
if exists('#auto_highlight')
au! auto_highlight
augroup! auto_highlight
setl updatetime=4000
echo 'Highlight current word: off'
return 0
else
augroup auto_highlight
au!
au CursorHold * let @/ = '\V\<'.escape(expand('<cword>'), '\').'\>'
augroup end
setl updatetime=500
echo 'Highlight current word: ON'
return 1
endif
endfunction
最も簡単な方法は、通常モードで入力することです *
有効化と無効化を行うこれらのマッピングもあります
"highligh search enabled by default
set hlsearch
"now you can toggle it
nnoremap <S-F11> <ESC>:set hls! hls?<cr>
inoremap <S-F11> <C-o>:set hls! hls?<cr>
vnoremap <S-F11> <ESC>:set hls! hls?<cr> <bar> gv
クリックして単語を選択
set mouse=a "Enables mouse click
nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>
ボーナス:CountWordFunction
fun! CountWordFunction()
try
let l:win_view = winsaveview()
let l:old_query = getreg('/')
let var = expand("<cword>")
exec "%s/" . var . "//gn"
finally
call winrestview(l:win_view)
call setreg('/', l:old_query)
endtry
endfun
" Bellow we set a command "CountWord" and a mapping to count word
" change as you like it
command! -nargs=0 CountWord :call CountWordFunction()
nnoremap <f3> :CountWord<CR>
マウスで単語を選択して一度に出現回数を数える:OBS:このバージョンでは、最後に「CountWord」コマンドがあることに注意してください
nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>:CountWord<cr>
nnoremap * *``cgn
していますnnoremap # #``cgN
*
、強調表示をオフにするにはどうすればよいですか?
:noh
または:nohlsearch
nnoremap <silent> * :execute "normal! *N"<cr>
とnnoremap <silent> # :execute "normal! #n"<cr>
?これらは単にカーソルの下の単語を強調表示しますが、次の出現に移動しません。
検索ベースのソリューション(*、/...)カーソルを移動しますが、これは残念なことです。
別の方法としては、拡張されたmark.vimプラグインを使用して.vimrc
から、を完了してダブルクリックで強調表示をトリガーできます(キーボードの選択によってコマンドがトリガーされる方法がわかりません)。
"Use Mark plugin to highlight selected word
map <2-leftmouse> \m
複数の強調表示、永続化などが可能です。
強調表示を削除するには、次のいずれかを実行します。
:Mark
(次の選択までオフにする):MarkClear
:set noincsearch
。私の意見では、これはVimで最も厄介な機能の1つであり、新規インストールで最初に無効にする機能の1つです。
*
無条件にカーソルを移動すると思います。そしてincsearch
、これは単なる「先読み」であり、実際の位置を変更せずに現在の検索を実行するだけなので、いかに煩わしいかはわかりません。
incsearch
にすると動きが妨げられると思いましたが、簡単なテストであなたが正しいことが確認されました。謝罪いたします。ただし、移動を防ぐマッピングを作成するのは非常に簡単です:nnoremap * *N
。検索を実行すると、カーソルが画面全体にジャンプするのが面倒だとは思わないでしょう。しかし...これらは完全に主観的なものです。Vive
:let @/='hilight_this'
にした場合は、も実行hlsearch
できます。ジャンプせずにテキストを強調表示し、既存の設定を変更する必要はありません。これにより、検索レジスタに現在格納されている値が変更されます。
まず、次のコマンドを発行して、hlsearchが有効になっていることを確認します
:set hlsearch
これをセットとして.vimrcファイルに追加することもできます
set hlsearch
コマンドモードまたは通常の検索コマンドでクイック検索メカニズムを使用すると、すべての結果が強調表示されます。結果間を前方に移動するには、「n」を押して後方に移動し、「N」を押します
通常モードでは、カーソルの下の単語をすばやく検索し、1つのコマンドで次の出現箇所にジャンプするには、「*」を押します。また、カーソルの下の単語を検索し、「#」を押して前の出現箇所に移動することもできます。 」
通常モードでは、クイック検索は、
/searchterm<Enter>
使用のハイライトを削除するために、これを.vimrcのショートカットにバインドしました
:nohl
検索の強調表示を有効にします。
:set hlsearch
次に、単語を検索します。
/word<Enter>
これを行うための私のお気に入りはmark.vimプラグインです。複数の単語を異なる色で同時に強調表示できます。
カーソルを動かさずに単語を強調表示するには、plop
" highlight reg. ex. in @/ register
set hlsearch
" remap `*`/`#` to search forwards/backwards (resp.)
" w/o moving cursor
nnoremap <silent> * :execute "normal! *N"<cr>
nnoremap <silent> # :execute "normal! #n"<cr>
あなたのvimrcに。
これの良いところはg*
、g#
「通常」*
やのように動作し#
ます。
開始するにはhlsearch
、「短い形式」を使用できます(コマンドモードで「noh」で始まる別の関数がない場合):noh
。または、長いバージョンを使用できます。:nohlsearch
非常に便利なように(私はhlsearch
1日に20回程度トグルしていることに気づきました)、次のようにトグルするものをマップできますhlsearch
。
" search highlight toggle
nnoremap <silent> <leader>st :set hlsearch!<cr>
。:。あなたがいる場合<leader>
である\(それがデフォルトである)、あなたは押すことができます\stで(すぐに)通常のトグルにモードhlsearch
。
または、:noh
マッピングしたいだけかもしれません:
" search clear
nnoremap <silent> <leader>sc :nohlsearch<cr>
上記単に実行されます:nohlsearch
ので、(とは異なり:set hlsearch!
、それはまだ単語の横を押す時間強調表示されます)*または#でノーマルモード。
乾杯
使用する autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
IncSearch
何かに設定したことを確認してください。例えばcall s:Attr('IncSearch', 'reverse')
。または、代わりに別のハイライトグループを使用できます。
これにより、カーソルの下にあるすべての単語が遅延なくハイライト表示されます。コードを調べていると、遅延が遅くなることがわかりました。ハイライトの色は単語の色と一致するため、スキーマとの一貫性が保たれます。
なぜだけではない:z /
これにより、カーソルの下の現在の単語とその他の出現箇所が強調表示されます。また、検索するアイテムごとに個別のコマンドを指定する必要はありません。おそらくそれはunholy gvimでは利用できないのでしょうか?デフォルトではvimにあります。
*カーソルを次の出現箇所に移動させる場合にのみ有効です。2つのものを視覚的に比較するとき、カーソルを動かしたくない場合が多く、毎回*キーを押すのは面倒です。
~/.vimrc
ファイルに追加します
" highlight the searched items
set hlsearch
" F8 search for word under the cursor recursively , :copen , to close -> :ccl
nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
:so%
通常のモデルでは言葉を超えて行きます。
プレス* F8を押して、プロジェクト全体を再帰的に検索します
たとえば、このプラグイン:
ちょうどを検索カーソルの下にvimawesome.com
重要なのは、clagccsが述べたように、ハイライトが検索と競合しないことです:https : //vim.fandom.com/wiki/Auto_highlight_current_word_when_idle
hlsearch
たくさん切り替えることを計画している場合は、の:set hlsearch!
代わりにマップすることをお勧めします:set nohlsearch
。これにより、設定が常にオフになるのではなく、トグルされます。