159

私の仕事では、インデントの家のスタイルに従う必要があります。これは次のようになります。

  • htmlとrubyをコーディングするときの2つのスペース
  • javascriptをコーディングするときのタブ、tabwidth=4を推奨

ファイルタイプごとに異なる空白の設定を指定するための最良の方法は何ですか?

4

5 に答える 5

254

方法はたくさんありますが、ここではシンプルでわかりやすい方法を紹介します。~/.vimrcこれらの行をあなたの:に追加します

autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4
于 2009-10-13T20:08:52.163 に答える
91

ピーターの答えは単純明快ですが、残念ながら選択肢は正しくありません。代わりに次のオプションを使用する必要があります。

autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab

また、次の点に注意してください。

  • を使用して、vim にタブ文字を表示させることができます:set list
  • タブ/スペース オプションを正しく設定したら、コマンドを使用して vim にファイルを修復させる (スペースをタブに、またはその逆に置き換える) ことができます:retab!
于 2009-10-13T23:43:57.510 に答える
37

ピーターの答えに+1しますが、Vimは別の解決策も提供します。多数のオプション、コマンド、およびマッピングを一度に設定するなど、単一の よりも複雑なことをしたい場合はsetlocal、vim のファイルタイプ プラグイン機能が役に立ちます。

filetype plugin onまたはfiletype plugin indent onを持っている必要があり.vimrc、次に作成できる ruby​​ などのプラグインを作成する必要があります~/.vim/ftplugin/ruby.vim。技術的には、ここで好きなコマンドを使用して、Ruby ファイルがロードされたときに実行できますが、推奨されるコマンドには、、、、および定義関数が含まれsetlocalます。ユーザーガイドには、さらに多くの情報があります。vim のスクリプト作成に精通している場合は、 にジャンプします。map <buffer>command -buffer:help 41.11:help usr_40:help usr_41

于 2009-10-13T20:23:47.157 に答える
11

開いたファイルのインデントを検出しようとするDetectIndentという素晴らしい vim スクリプトもあります。コーディング スタイルが異なる多くのファイルを扱う場合に非常に便利です。

.vimrcで自動コマンドを使用します。

:autocmd BufReadPost * :DetectIndent 
于 2009-10-16T06:04:27.217 に答える