kip*_*ets 56 vim netbeans highlight
我在NetBeans工作并喜欢这个功能:当你将光标放在一个变量名中时,所有出现的变量都会突出显示.这对于快速搜索变量的所有出现非常有用.是否可以将此行为添加到Vim?
too*_*php 89
此自动命令将执行您想要的操作:
:autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Run Code Online (Sandbox Code Playgroud)
编辑:我IncSearch在我的示例中使用了突出显示组,但您可以通过运行此命令找到要使用的其他颜色:
:so $VIMRUNTIME/syntax/hitest.vim
Run Code Online (Sandbox Code Playgroud)
Bri*_*new 22
如果你设置
:set hlsearch
Run Code Online (Sandbox Code Playgroud)
突出显示所有出现的搜索模式,然后使用*或#查找光标下单词的出现,这将使您获得所需的某些方式.但是我认为语法感知变量突出显示超出了VIM的范围.
此语句将允许变量启用/禁用突出显示光标下单词的所有出现:
:autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\')):'match none':""
Run Code Online (Sandbox Code Playgroud)
一个人会激活突出显示:
:let HlUnderCursor=1
Run Code Online (Sandbox Code Playgroud)
并禁用它:
:let HlUnderCursor=0
Run Code Online (Sandbox Code Playgroud)
可以轻松定义用于启用/禁用突出显示的快捷键:
:nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(\"HlUnderCursor\")?HlUnderCursor*-1+1:1"<CR>
Run Code Online (Sandbox Code Playgroud)
删除变量会阻止匹配语句执行,而不会清除当前突出显示:
:unlet HlUnderCursor
Run Code Online (Sandbox Code Playgroud)
如果你不想要突出语言的话(报表/ preprocs例如if,#define)当你的光标在这些的话,你可以把你的这个功能.vimrc基础上,@too_much_php答案:
let g:no_highlight_group_for_current_word=["Statement", "Comment", "Type", "PreProc"]
function s:HighlightWordUnderCursor()
let l:syntaxgroup = synIDattr(synIDtrans(synID(line("."), stridx(getline("."), expand('<cword>')) + 1, 1)), "name")
if (index(g:no_highlight_group_for_current_word, l:syntaxgroup) == -1)
exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
else
exe 'match IncSearch /\V\<\>/'
endif
endfunction
autocmd CursorMoved * call s:HighlightWordUnderCursor()
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为你真正想要的是Shuhei Kubota的以下插件:
http://www.vim.org/scripts/script.php?script_id=4306
根据描述:'这个脚本像许多IDE一样突出了光标下的单词.
干杯.