在vim 8.0中,对于.sh文件,我希望按*来突出显示光标下的单词,将该单词复制到yank缓冲区中,并希望单词包含字符:
( @ ) : , ^除了字母、数字和下划线字符之外。我还希望第二次按下*以清除高亮显示。我注意到,iskeyword的缺省值是:
iskeyword=@,48-57,_,192-255下面是我的~/.vimrc文件中的内容:
function! Highlighting()
if g:highlighting == 1 && @/ =~ '^\\<'.expand('<cword>').'\\>$'
let g:highlighting = 0
return ":silent nohlsearch\<CR>"
endif
let @/ = '\<'.expand('<cword>').'\>'
let g:highlighting = 1
return ":silent set hlsearch\<CR>yiw"
endfunction
set iskeyword+=(,@,),:,,,^
let g:highlighting = 0
nnoremap <silent> <expr> <CR> Highlighting()它在很大程度上起作用。不起作用的是,单词不包括字符:
( @但他们包括其他人,包括最后的括号。以下是几个应该匹配的词:
(@)_name
(@):name
(@)_name_name
(@):name^name
(@):name,name有人能建议一种修复方法,让它可以与单词一起使用,包括我想要的单词中的所有字符吗?请随时建议一个完全不同的实现或插件,以解决我的需要。
发布于 2017-03-16 17:50:07
答案是在~/.gvimrc文件中执行以下操作:
set iskeyword+=(,@-@,),:,,,^要获得更多关于为什么需要成语@-@的信息,请在vim中这样做:
:help isfnamehttps://stackoverflow.com/questions/42841384
复制相似问题