私は「github プロジェクトに貢献する」ことにかなり慣れていませんが、そうすることに興奮しています。たとえば、私は VIM を使用しており、独自の .vimrc ファイルを持っていますが、貢献するために Ruby プロジェクトをフォークしてからクローンする場合、同じインデントをどのように使用すればよいでしょうか。
4 に答える
多くのプロジェクト:help modeline
には、ファイルの下部にあるコメントにオプションがあります。例えば、
# vim: noet
これらの種類のオプションは、〜/.vimrcのオプションを上書きします。プロジェクトメンテナは、コード全体の一貫性を保つためにこれらを配置することがよくあります。一部のプロジェクトにはこれらがありませんが、それでも一連のルールに準拠しています。たとえば、ハードスペースの代わりにタブを使用する場合があります。ハードスペースを使用していて、タブを使用するプロジェクトに貢献している場合は、一貫性を保つことが最善です。これはいくつかの方法で実現できます。一例として、vimrcでそのプロジェクトの自動コマンドを次のように設定します。
au BufRead,BufNewFile /path/to/project/** set noet
あなたがそのプロジェクトの願いに従うことを忘れないように。もう1つの方法は、手動で設定することです。プロジェクトタブをハードスペースに変更してから、元に戻すこともできます。たとえば、あなたはすることができます
:retab!
タブを好みに合わせて変更します。次に、編集が完了したら、設定を設定に戻し、別の設定を行うことができます。
:set noet
:retab!
smudge および clean フィルターを使用して ( Pro-Git book のこの部分を参照)、インデントに使用されるタブまたはスペースを変更するために必要なことは何でもフィルターに実行させることができます。そうすれば、使い慣れたもので作業し、コミット時にアップストリーム バージョンに変換できます。
開いているファイルのインデントをチェックし、(必要に応じて) バッファーのインデント設定をそれに適応させるプラグインがいくつかあります。私自身のプラグインはIndentConsistencyCopと呼ばれています。プラグイン ページには、代替手段へのリンクも含まれています。これは、多くの異なるプロジェクトにパッチを提出する場合に特に役立ちます。これらのプロジェクトには、一貫したガイドラインさえない場合があります。
いくつかのプロジェクトに深く関わっている場合は、ディレクトリローカル構成を可能にするプラグインをお勧めします。プロジェクトのルート:setlocal expandtab tabstop=...
にあるファイルに配置するだけです。ファイルタイプ固有のローカル構成も可能になるため、これにはlocalrc.vim.lvimrc
をお勧めします。
これを .vimrc ファイルで使用します。
set softtabstop=2
set shiftwidth=2
これにより、インデント設定が変更されます。
グローバル vim 設定を変更したくない場合は、拡張機能を使用する必要がある場合があります。http://www.vim.org/scripts/script.php?script_id=1408