これは'iskeyword'
オプションによって発生します。
これは* .txtのバッファの'iskeyword'
のデフォルト値である:
[email protected],48-57,_,192-255
そして、これは* .shにバッファのデフォルト値です:
[email protected],48-57,_,192-255,.
あなたは手動で削除することができます次のコマンドを実行して、* .shバッファ内のオプション値から余分なドットを削除します。
setlocal iskeyword-=.
恒久的な解決のために、あなたはあなたのvimrcに以下を追加することができます
au! BufRead *.sh setlocal iskeyword-=.
私はこの特異性の原因を突き止めてきたと信じています。だから、構文ファイルのように見えます
" AFAICT "." should be considered part of the iskeyword. Using iskeywords in
" syntax is dicey, so the following code permits the user to
" g:sh_isk set to a string : specify iskeyword.
" g:sh_noisk exists : don't change iskeyword
" g:sh_noisk does not exist : (default) append "." to iskeyword
if exists("g:sh_isk") && type(g:sh_isk) == 1 " user specifying iskeyword
exe "setl isk=".g:sh_isk
elseif !exists("g:sh_noisk") " optionally prevent appending '.' to iskeyword
setl isk+=.
endif
が犯人であり、それは
'iskeyword'
オプションのその改ざんをオーバーライドするために代替案のカップルを提供しています。私のシステムでは、私はライン
/usr/share/vim/vim74/syntax/sh.vim
の19から28に次のコードを持っています。例えば
、あなたのvimrcにこれを追加し、g:sh_noisk
グローバル変数を使用する:
let g:sh_noisk = 1
あなたは与えることができます:文字がワード境界のために含まれているかどうか確認するためにiskeywordセットを。シェルファイルで試してみると、以下のコマンド ':set iskeyword - =。'を使ってドットを削除することができます。このコマンドを実行した後、w、b、または*を試して、動作するかどうか確認してください。それがうまくいくなら、私に知らせてください。 – SibiCoder
さらに、 ':verbose set isk?'を試してください。最後に設定したファイルが表示されます。 – 1983
/usr/bin/vim/vim74/pluginに似たパスの下にデフォルトのftpluginがあります。それを確認します。 – SibiCoder