2016-06-22 11 views
2

何かの理由で、.vimrcファイルのset expandtabコマンドは何の効果もありません。ここで.vimrcでexpandtabを設定しない

は私.vimrc次のとおりです。

" tab settings 
set expandtab 
set smarttab 
set softtabstop=2 
set tabstop=2 
set shiftwidth=2 
set paste 

しかし、私はvi(ファイル名)を実行すると:setコマンドが発する:

:set 
--- Options --- 
    helplang=en   shiftwidth=2  ttyfast 
    paste    tabstop=2   ttymouse=xterm2 
    fileencodings=ucs-bom,utf-8,default,latin1 

expandtabオプションが設定されていないことを示しています。これはnoexpandtabで返される:set expandtab?を実行することによってさらに確認されます。

私はOSX 10.10、およびvi --helpリターンによ:

$ vi --version 
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 20 2016 11:11:25) 
MacOS X (unix) version 
Included patches: 1-1847 
Compiled by Homebrew 
私の.vimrcでいくつかの設定が表彰されているどのように来る

はなく、set expandtabexpandtabのドキュメントから

+0

vimで ':set expandtab'コマンドを使うとどうなりますか? expandtabの設定を上書きするプラグインがあるかもしれません。 –

+0

起動後に ':set expandtab'を実行すると動作しますが、私が投稿したのは' .vimrc'ファイル全体です。ファイル名を指定していないので、プラグインが実行されています。 – ErikR

+6

':help paste'を読んでください。より一般的には、あなたが完全に理解していないものをあなたの 'vimrc'に入れないでください。 – romainl

答えて

17

このオプションは、pasteオプションがリセットされたときpaste オプションが設定され、復元された時にリセットされます。

ところで、おそらくpasteが常に設定されることは望ましくありません。一般的に(あなたが好きなキーに<F2>を変更)など

便利このショートカットを追加することができます1回のキー入力でオンとオフpasteを有効にするには、めちゃくちゃにインデントを避けるために、端末のVimに貼り付けるために使われています:

+1

この問題をすべて回避するには、[ブラケットペースト](https://github.com/ConradIrwin/vim-bracketed-paste)を調べるとよいでしょう。 [Unimpaired.vim](https://github.com/tpope/vim-unimpaired)は 'paste 'を一時的に設定する' yo'/'yO'コマンドも提供しています。 –

+0

'〜/ .vimrc'で' set paste'を上書き 'set expandtab' – firelyu

関連する問題