2017-03-16 70 views
1

在vim 8.0中,對於.sh文件,我想按*高亮顯示光標下的單詞,字入緩存,並且我想要包含字符的字:在vim中,如何讓*突出顯示和抽出包括特殊字符(@)的單詞:^

(@) : ,^

除了字母數字和下劃線字符。我還想要第二次按下*以清除突出顯示。我注意到,爲iskeyword默認爲:

[email protected],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 

任何人都可以提出一個修正,允許將與單詞,包括所有我想在一個字的字符工作?請隨時提出一個完全不同的實現或插件來解決我的需求。

回答

2

的答案盡在~/.gvimrc文件中的以下內容:

set iskeyword+=(,@[email protected],),:,,,^ 

要獲得爲什麼需要成語@[email protected]更多的信息,在vim做:

:help isfname 
+0

我找到了答案通過在vim中尋找幫助。我提供這個答案以防其他人幫助。 –