首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vim中,如何使*突出显示并对包括特殊字符(@):、^

在vim中,如何使*突出显示并对包括特殊字符(@):、^
EN

Stack Overflow用户
提问于 2017-03-16 17:49:52
回答 1查看 200关注 0票数 1

在vim 8.0中,对于.sh文件,我希望按*来突出显示光标下的单词,将该单词复制到yank缓冲区中,并希望单词包含字符:

代码语言:javascript
复制
( @ ) : , ^

除了字母、数字和下划线字符之外。我还希望第二次按下*以清除高亮显示。我注意到,iskeyword的缺省值是:

代码语言:javascript
复制
iskeyword=@,48-57,_,192-255

下面是我的~/.vimrc文件中的内容:

代码语言:javascript
复制
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()

它在很大程度上起作用。不起作用的是,单词不包括字符:

代码语言:javascript
复制
( @

但他们包括其他人,包括最后的括号。以下是几个应该匹配的词:

代码语言:javascript
复制
(@)_name
(@):name
(@)_name_name
(@):name^name
(@):name,name

有人能建议一种修复方法,让它可以与单词一起使用,包括我想要的单词中的所有字符吗?请随时建议一个完全不同的实现或插件,以解决我的需要。

EN

回答 1

Stack Overflow用户

发布于 2017-03-16 17:50:07

答案是在~/.gvimrc文件中执行以下操作:

代码语言:javascript
复制
set iskeyword+=(,@-@,),:,,,^

要获得更多关于为什么需要成语@-@的信息,请在vim中这样做:

代码语言:javascript
复制
:help isfname
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42841384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档