web-dev-qa-db-ja.com

1つのセッションだけに個別のvimrcファイルを提供する方法

Vim/viに別のvimrcファイルを提供する方法があるかどうか知りたい。私は2つの異なるvimrcファイルの管理を検討しています。コンテンツについて、バージョン管理でチェックアウト/チェックインします。.vimrcファイルの通常のコマンドではなく、異なるコマンドセットを使用したいと思います。

例えば。

私の.vimrcファイルには、ファイルの保存中に末尾のスペースを自動的に削除するコマンドが含まれています。ただし、特定のファイルに対してこの機能をアクティブにしたくありません。

それで、異なるvimrcファイルを提供する方法はありますか(おそらくコマンドラインで、vim --vimrc = somefile file-to-openとして毎回パラメーターとしてそれを与えます)?

8
mtk

マンページを参照してください。

-u {vimrc}初期化にはファイル{vimrc}のコマンドを使用します。他のすべての初期化はスキップされます。これを使用して、特別な種類のファイルを編集します。また、「NONE」という名前を付けることで、すべての初期化をスキップするために使用することもできます。詳細については、vim内の「:help initialize」を参照してください。

11
chaos

それで、異なるvimrcファイルを提供する方法はありますか(おそらくコマンドラインで、vim --vimrc = somefile file-to-openとして毎回パラメーターとしてそれを与えます)?

はい、-uパラメータを使用します。

vim -u ~/.my-custom-vimrc

man vimから:

   -u {vimrc}  Use  the  commands in the file {vimrc} for initializations.
               All the other initializations are  skipped.   Use  this  to
               edit  a special kind of files.  It can also be used to skip
               all initializations by giving the name "NONE".  See  ":help
               initialization" within vim for more details.

私の.vimrcファイルには、ファイルの保存中に末尾のスペースを自動的に削除するコマンドが含まれています。ただし、特定のファイルに対してこの機能をアクティブにしたくありません。

一部の既知のファイルタイプに対して特別な処理が必要な場合は、別の解決策があります。 vimrcでautocmdコマンドを使用します。たとえば、これは私のファイルタイプに依存する構成です。

" Mapping of filetypes to options
au FileType freerad      setl noexpandtab sts=0 sw=8
au FileType make         setl noexpandtab sts=0
au FileType php          let php_sql_query=1
au FileType php          let php_htmlInStrings=1
au FileType python       setl shiftwidth=2 expandtab
au FileType sql          setl noexpandtab sts=0 sw=8
" global options I do not want any filetype to override
au FileType *            setl formatoptions-=ro " don't continue comments

Vimが自動的に特定のファイルタイプを割り当てないものにオプションを適用する必要がある場合は、独自のマッピングを追加できます(autocmdコマンドを使用する前に):

" mapping of filenames to filetypes
au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad
au FileReadPost,BufReadPost,BufNewFile *.xt              setl ft=xt
11

あなたもすることができます set exrcメインの.vimrcで、vimが現在のディレクトリから.vimrcを自動的にロードするようにします。

1
Leiaz