181

Notepad ++のように、GVimで選択した単語のすべての出現を強調表示するにはどうすればよいですか?

4

15 に答える 15

232

通常モード:

:set hlsearch

/次に、通常モードでコマンドを使用してパターンを検索するか、挿入モードで を<Ctrl>o続けます。通常モードでは、カーソルの下にある次の単語が検索されます。このオプションは、設定されている場合、それらすべてを強調表示します。単語の前の出現を検索します。/*hlsearch#

前の検索のハイライトを削除するには:

:nohlsearch

:nohlsearch<CR>便利なキーにマップしたい場合があります。

于 2010-08-07T16:38:36.587 に答える
141

*キーは、カーソルの下にある単語のすべての出現箇所を強調表示します。

于 2010-08-07T16:36:42.907 に答える
23

私はそれが本当に古い質問であることを知っていますが、誰かがこの機能に興味を持っているなら、このコードをチェックできます 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
于 2014-09-28T18:56:08.813 に答える
21

最も簡単な方法は、通常モードで入力することです*

これらのマッピングを有効および無効にすることもできます

"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>
于 2011-10-15T17:12:51.413 に答える
10

検索ベースのソリューション ( */...) はカーソルを移動しますが、これは残念なことかもしれません。

別の方法は、強化された mark.vimプラグインを使用して.vimrcから、ダブルクリックでハイライトをトリガーできるようにすることです (キーボードの選択によってコマンドがトリガーされる方法がわかりません)。

"Use Mark plugin to highlight selected word  
map <2-leftmouse> \m   

複数の強調表示、持続性などを可能にします。

強調表示を削除するには、次のいずれかを行います。

  • もう一度ダブルクリック
  • :Mark(次の選択までスイッチオフ)
  • :MarkClear
于 2011-10-14T18:58:12.240 に答える
4

最初に (または .vimrc で):

:set hlsearch

次に、強調表示する単語の上にカーソルを置き、 を押します*

hlsearchは、現在の検索のすべての出現を強調表示することを*意味し、カーソルの下の単語を検索することを意味します。

于 2010-08-07T16:47:12.407 に答える
4

たとえば、このプラグイン:

vimawesome.comでカーソルの下を検索するだけです

clagccsが述べたように、重要なのは、ハイライトが検索と競合しないことです: https://vim.fandom.com/wiki/Auto_highlight_current_word_when_idle

検索と競合しない方法のスクリーンショット: ここに画像の説明を入力 注:

  • vim-illuminate はデフォルトで強調表示されますが、私のスクリーンショットでは下線に切り替えました
  • vim-illuminate は、デフォルトでカーソルの下の単語を強調表示/下線を付けます。私のスクリーンショットでは、設定を解除しています
  • 私の配色は非常に灰色がかっています。あなたのものもチェックしてカスタマイズしてください。
于 2020-05-25T00:18:38.087 に答える
3

最初に、次のコマンドを発行して hlsearch が有効になっていることを確認します。

:set hlsearch

これを設定として .vimrc ファイルに追加することもできます

set hlsearch

コマンド モードまたは通常の検索コマンドでクイック検索メカニズムを使用すると、すべての結果が強調表示されるようになりました。結果間を進むには、'n' を押して戻ります 'N' を押します

通常モードでは、カーソルの下の単語をすばやく検索し、1 つのコマンドで次の出現箇所にジャンプするには、'*' を押します。また、'#' を押すと、カーソルの下の単語を検索して前の出現箇所に移動することもできます。 '

通常モードでは、クイック検索は

/searchterm<Enter>

ocuurences の使用に関するハイライトを削除するために、これを .vimrc のショートカットにバインドしました

:nohl
于 2010-08-09T04:29:30.113 に答える
2

これを行うための私のお気に入りは、mark.vimプラグインです。複数の単語を異なる色で同時に強調表示できます。

スクリーンショットの例

于 2010-08-09T04:51:21.873 に答える
2
set hlsearch

多分 ?

于 2010-08-07T16:38:21.407 に答える
2

検索の強調表示を有効にします。

:set hlsearch

次に、次の単語を検索します。

/word<Enter>
于 2010-08-07T16:38:44.377 に答える
1

使用するautocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))

IncSearch何かに設定されていることを確認してください。例えばcall s:Attr('IncSearch', 'reverse')。または、代わりに別のハイライト グループを使用することもできます。

これにより、カーソルの下にあるすべての単語がすぐに強調表示されます。コードを調べていると、遅延によって速度が低下することがわかりました。ハイライトの色は単語の色と一致するため、スキームとの一貫性が保たれます。

于 2015-10-02T12:22:50.743 に答える
0

だけではない理由: z/

これにより、カーソルの下の現在の単語とその他の出現箇所が強調表示されます。また、検索するアイテムごとに個別のコマンドを指定する必要はありません。おそらく、それは邪悪なgvimでは利用できませんか?デフォルトではvimにあります。

* は、カーソルを次の出現箇所に移動させたい場合にのみ有効です。2 つのものを視覚的に比較する場合、カーソルを動かしたくないことがよくあります。毎回 * キーを押すのは面倒です。

于 2014-08-08T20:00:16.900 に答える