8

Linux Mint 12 "Lisa"(x64)でVim7.3.154cliを使用しています。

私は2列のtabstopとを使用することを好みます。shiftwidth.vimrc
:set ts=2
:set sw=2
同じことをしなければなりません。

Vimの新しいインスタンスを開くと、tabstop値が保持されるため、既存のタブはに従ってレンダリングされ.vimrcます。しかし、どういうわけか、shiftwidth値は3に変更されます。これにより、自動インデント中に3列のインデントが発生します。Vimの新しいインスタンスで
実行すると、この問題が修正されます。Vimが値を 無視/変更している理由を誰かに教えてもらえますか?:set sw=2
shiftwidth.vimrc

すべてのプラグインを無効にしてみましたが無駄になりました。

Vimでコンパイルされたオプション | .vimrc

4

2 に答える 2

6

この回答は、コメントで説明した内容を要約したものです。:)

これは、ファイル固有の設定が有効になっていることが原因である可能性があります。詳細については確認:h modelineしてください。問題のあるファイルにこの行が含まれていないことを確認してください。


設定するだけでなく、空白とタブに関してさらにいくつかの設定を行う必要がありますtabstopshiftwidth

set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround  " Round indent to multiple of 'shiftwidth'
set smartindent " Do smart indenting when starting a new line
set autoindent  " Copy indent from current line, over to the new line

" Set the tab width
let s:tabwidth=4
exec 'set tabstop='    .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth

いくつかの追加情報については、このビデオを確認してください:http: //vimcasts.org/episodes/tabs-and-spaces/


これが、あなたが解決できた実際の問題に対する答えです。そのphp.phpファイルは/pluginディレクトリにありました。そのディレクトリは、Vimが起動するたびに1回ロードされます。これを確認してください:http://learnvimscriptthehardway.stevelosh.com/chapters/42.html#vimplugin

そのファイルをPHPファイルにのみロードする場合は、次の/ftpluginフォルダーに配置する必要があります:http: //learnvimscriptthehardway.stevelosh.com/chapters/42.html#vimftplugin

そこにあるドキュメントを読んでください。.vimファイルである必要があります。つまり、この場合はと呼ばれphp.vimます。

PathogenまたはVundleが行うことは、runtimepath(:h runtimepath)を変更することであり、それ以上でもそれ以下でもありません。

したがって、この回答の左側にある小さな緑色の矢印をクリックして、この回答を受け入れることができます。:)

于 2013-01-05T18:10:49.523 に答える
0

実行できます:

verbose set shiftwidth ? 

何がshiftwidthの値を設定しているかを確認します。プラグインから来ている可能性があります。そこで値を変更することもできます。

于 2021-12-06T16:55:52.427 に答える