Notepad ++のように、GVimで選択したWordのすべての出現を強調表示するにはどうすればよいですか?
通常モードの場合:
:set hlsearch
次に、通常モードの/
コマンド、または挿入モードの<Ctrl>o
に続いて/
コマンドを使用してパターンを検索します。 *
Normalモードでは、カーソルの下にあるWordの次の出現箇所を検索します。 hlsearch
オプションは、設定されている場合、それらすべてを強調表示します。 #
は、以前に出現したWordを検索します。
前の検索のハイライトを削除するには:
:nohlsearch
:nohlsearch<CR>
を便利なキーにマップすることをお勧めします。
*
キーは、カーソルの下にあるWordのすべての出現箇所を強調表示します。
私はそれが本当に古い質問であることを知っていますが、誰かがこの機能に興味があるなら、このコードを確認できます 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
クリックしてWordを選択します
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>
マウスでWordを選択し、一度に出現回数を数える:OBS:このバージョンでは、最後に「CountWord」コマンドがあります。
nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>:CountWord<cr>
検索ベースのソリューション(*、 /...)カーソルを移動します。これは不幸な場合があります。
別の方法は、 enhanced mark.vim プラグインを使用し、.vimrc
を完了してダブルクリックで強調表示をトリガーすることです(キーボードの選択によりコマンドがトリガーされる方法がわかりません)。
"Use Mark plugin to highlight selected Word
map <2-leftmouse> \m
複数の強調表示、永続化などが可能です。
強調表示を削除するには、次のいずれかを実行します。
:Mark
(次の選択までスイッチオフ):MarkClear
最初(または.vimrc内):
:set hlsearch
次に、強調表示するWordの上にカーソルを置き、*
を押します。
hlsearch
は、現在の検索のすべての出現箇所を強調表示することを意味し、*
はカーソルの下のWordを検索することを意味します。
検索の強調表示を有効にします。
:set hlsearch
次に、Wordを検索します。
/Word<Enter>
これを行うための私のお気に入りは、 mark.vim プラグインです。複数の単語を異なる色で同時に強調表示できます。
set hlsearch
多分 ?
最初に、次のコマンドを発行してhlsearchが有効になっていることを確認します
:set hlsearch
これを.vimrcファイルにセットとして追加することもできます
set hlsearch
コマンドモードまたは通常の検索コマンドでクイック検索メカニズムを使用すると、すべての結果が強調表示されます。結果間で前方に移動するには、「n」を押して後方に移動し、「N」を押します
通常モードでは、カーソルの下の単語をすばやく検索し、1つのコマンドで次の出現箇所にジャンプするには「*」を押します。また、カーソルの下の単語を検索し、「#」を押して前の出現箇所に移動することもできます'
通常モードでは、クイック検索を呼び出すこともできます
/searchterm<Enter>
ocuurences使用のハイライトを削除するには、これを.vimrcのショートカットにバインドしました
:nohl
autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
を使用
IncSearch
が何かに設定されていることを確認してください。例:call s:Attr('IncSearch', 'reverse')
。または、代わりに別のハイライトグループを使用できます。
これにより、カーソルの下にあるすべての単語がすぐに強調表示されます。コードを確認しているときに、遅延が遅くなることがわかりました。ハイライトの色はWordの色と一致するため、スキームと一貫性が保たれます。
カーソルを動かさずにWordを強調表示するには、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 (すばやく)normalモードでhlsearch
を切り替えます。
または、単に:noh
をマップしたいだけです:
" search clear
nnoremap <silent> <leader>sc :nohlsearch<cr>
上記は単に:nohlsearch
を実行するので(:set hlsearch!
とは異なり)、次に押すときに引き続きWordが強調表示されます。 * または # 通常モード。
乾杯
~/.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%
を使用して設定を再読み込みします通常のモデルでは、Wordを調べます。
プレス* F8を押して、Wordでプロジェクト全体を再帰的に検索します
なぜだけではない:z /
これにより、カーソルの下の現在のWordおよびその他の出現箇所が強調表示されます。また、検索するアイテムごとに個別のコマンドを指定する必要はありません。おそらく、それは不浄なgvimでは利用できないのでしょうか?デフォルトではvimにあります。
*は、カーソルを次のオカレンスに移動する場合にのみ有効です。 2つのことを視覚的に比較するとき、多くの場合カーソルを動かしたくないので、毎回*キーを押すのは面倒です。