在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
有人可以建议一个修复程序,允许它使用单词,包括我想要的所有字符吗?请随意提出一个完全不同的实现或插件来解决我的需求。
答案 0 :(得分:2)
答案是在~/.gvimrc
文件中执行以下操作:
set iskeyword+=(,@-@,),:,,,^
要获得有关成语@-@
的原因的更多信息,请在vim中执行:
:help isfname