在vim中,如何让*突出显示和拖动单词,包括特殊字符(@):^
在vim 8.0中,对于.sh文件,我想按在vim中,如何让*突出显示和拖动单词,包括特殊字符(@):^,vim,vim-plugin,vim-syntax-highlighting,Vim,Vim Plugin,Vim Syntax Highlighting,在vim 8.0中,对于.sh文件,我想按*突出显示光标下的单词,将单词复制到yank缓冲区,我想让单词包含以下字符: ( @ ) : , ^ ( @ 除了字母数字和下划线字符之外。我还想再次按下*以清除突出显示。我注意到,iskeyword的默认值是: iskeyword=@,48-57,_,192-255 以下是我的~/.vimrc文件中的内容: function! Highlighting() if g:highlighting == 1 && @/ =~ '^
*
突出显示光标下的单词,将单词复制到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()
set iskeyword+=(,@-@,),:,,,^
但他们包括了其他人,包括右括号。以下是一些应该匹配的词:
(@)_name
(@):name
(@)_name_name
(@):name^name
(@):name,name
有人能提出一个修复方案,让它能够处理包含我想要的所有字符的单词吗?请随意推荐一个完全不同的实现或插件来解决我的需要。答案是在
~/.gvimrc
文件中执行以下操作:
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()
set iskeyword+=(,@-@,),:,,,^
要了解为什么需要使用习惯用法@-@
的更多信息,请在vim中执行以下操作:
:help isfname
我通过查看vim中的帮助找到了答案。我会提供这个答案,以防对其他人有所帮助。