web-dev-qa-db-ja.com

vimファイルタイププラグインを有効にする

私の.vimrcファイルにはこの行があります。

filetype plugin indent on

そして~/.vim/ftplugin/py.vimrc(。vimファイルとして保存しようとしました)コピーして貼り付けました python標準 のvimrcファイルで、すべてのその中の提案された設定(コメント解除)。test.pyファイルを作成して開き、タブのようなことをすると、4つではなく8つのスペースになります。

何が悪いのかわからない。

4
person

交換します

_au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
au BufRead,BufNewFile *.py,*.pyw set expandtab
fu Select_c_style()
    if search('^\t', 'n', 150)
        set shiftwidth=8
        set noexpandtab
    el 
        set shiftwidth=4
        set expandtab
    en
endf
_

_" indenting
set cindent
set autoindent
set shiftwidth=4
set softtabstop=4
set tabstop=4
set expandtab
set backspace=indent,eol,start
_

Select_c_style()関数が呼び出されているか、引用符で囲まれたコードで十分かが明確でないためです。

はい、私の2番目の.vimrc抽出は、明示的なものなしでどこでもタブを使用することをほとんど防ぎます Ctrl-VTab、しかし、ほとんどのUnixyの状況での文字通りのタブは、とにかく刺激的です。 (そして、vimの省略形で.vimrcファイルを投稿するPythonistasは、メモ帳を使用するように強制する必要がありますが、それは別の問題です;)

1
msw

簡単に言うと、そのファイルは〜/ .vim/ftpluginディレクトリではなく〜/ .vim/pluginディレクトリに置く必要があります。その場合、ファイルのベース名は関係ありませんが、サフィックスは「.vim」である必要があります。

ファイルのヘッダーによると、いつでもソースを取得でき、Pythonファイル以外のファイルには影響しません。したがって、ファイルを〜/ .vim /に安全に配置できます。 Vimを起動するたびにソースとなるプラグインディレクトリ。

Py.vimrcを〜/ .vim/ftpluginディレクトリに配置しても機能しない理由は3つあります。 1つ目は、サフィックスは「.vim」でなければならないということです。 2つ目は、ファイルのベース名がファイルタイプのVimの名前と同じでなければならないということです。 Pythonの場合、ファイルタイプは「python」です。したがって、Pythonのファイルタイププラグインの名前は "python.vim"である必要があります。3番目の理由は、ファイルのソース時にそのファイルの自動コマンドが読み取られるためです。 Pythonソースファイル(他のすべてが正しかった場合)を開きます。これで、コマンドを実行する準備が整います Pythonファイル。

最後に、「tabstop」設定を4に変更しないでください。4のインデントを使用する場合でも、「shiftwidth」を4に設定し、「softtabstop」を4に設定しますが、「tabstop」は8のままにします。前回チェックしたとき、Pythonインタープリターはタブストップが8であると想定しています。注意して一貫性を保つと、他の「タブストップ」値を使用せずに済みますが、危険だと思います。

0
garyjohn