質問

私が持っている Vimのの7、CentOSの5に(拡張)し、それ行く準備ができてすべての通常のVimのプラグイン/スクリプトが付属しています。

$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim

私はの.py(vim file.py)で終わるファイルを開くとき、それは自動的にこれらのプラグインを読み込むと思うだろうが、私はそれがそうであることを確認していません。私がしたいことはあります:

を押し TAB と4つのスペースを受け取ります。スイート、条件文などの自動インデント次の行ます。

私は明示的に私のファイル.vimrcにタブストップ、ずらし幅など設定することで、この作業を持っています。上記パイソンのファイルがために何をしている、これはされていませんか?なぜ.vimrcにこれらの事を設定しなければならないのですか?どのように私が代わりにVimのプラグインからこれらの機能を得るのですか?

現在の.vimrcます:

syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
役に立ちましたか?

解決

あなたのvimrcで...タブストップ、ずらし幅などを設定することは正しいです。これらは、ファイルタイプ固有のインデントのサポートへのパラメータとしての役割を果たすだけでなく、あなたのグローバル設定を設定します。

言語インデントプラグインは、これらの設定を使用して、典型的には、言語のための適切なインデント式(:he inde)を設定します。したがって、Pythonの圧子(DEF、クラス、...のための)ブロック冒頭陳述の後にインデント、およびクローズの後にdedenting(リターン、合格、継続...)とTS、SWに応じて自動的にそうする必要があり、 ...あなたが設定されています。

プラグインはバッファにロードされている場合、あなたはまだわからない場合は、単純に検出されたタイプを確認するために検出、プラグイン、およびインデントの設定、および:filetypeを表示する:set ft?ん。

他のヒント

私の理解では、Pythonのファイルは複数の方法をインデントすることができますので、python.vimファイルは、おそらく単なる構文の強調表示のファイルであるということです。 PEP8 の4つのスペースを規定しているが、従来のファイルには、タブを使っ含む異なる可能性がありますます。

私たちのレガシーPythonのファイルの一部は、実際にインデントごとに2つのスペースを使用します。だから私はVimのにインデントのPythonを残し、ファイルごとやファイルタイプごとに設定します。 .vimrcに次の行は私に言ってから、私のXML、XHTML、およびHTML(2つのスペース)。

異なるPythonの固有の設定を提供します
au FileType python setl shiftwidth=4 tabstop=4

また、あなたがしなければ便利であるモードラインを持つファイルで特定の設定を設定することができますレガシーファイルを持っています。

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top