2016-06-22 11 views
2

Aus irgendeinem Grund hat der set expandtab Befehl in meiner .vimrc Datei keinen Effekt.set expandtab in .vimrc nicht wirksam

Hier ist meine .vimrc:

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

Allerdings, wenn ich vi (keine Dateinamen) führen die :set Befehl aussendet:

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

, die anzeigt, dass die expandtab Option nicht gesetzt ist. Dies wird ferner durch Ausführen von :set expandtab? bestätigt, das mit noexpandtab zurückkehrt.

Ich bin auf OSX 10.10 und vi --help kehrt:

$ 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 

Wie kommen einige Einstellungen in meinem .vimrc geehrt werden, aber nicht set expandtab?

+0

Was passiert, wenn Sie in vim den Befehl ': set expandtab' verwenden? Könnten einige Plugins sein, die die Einstellung extttab überschreiben. –

+0

Es funktioniert, wenn ich nach dem Start ': set expandtab' starte, aber was ich gepostet habe, ist meine gesamte' .vimrc' Datei und ich habe keinen Dateinamen angegeben, also bezweifle ich irgendeinen Plugins werden ausgeführt. – ErikR

+6

Lies ': help paste'. Allgemein gesagt, setze nichts in deinen "Vimrc", das du nicht vollständig verstehst. – romainl

Antwort

17

Aus der Dokumentation auf expandtab:

Diese Option ist zurückgesetzt, wenn die paste Option gesetzt ist und wiederhergestellt, wenn der paste Option zurückgesetzt wird.

BTW, Sie wollen wahrscheinlich nicht paste ständig eingestellt werden. Es ist allgemein für das Einfügen in einen Terminal Vim verwendet Vertiefung vermasselt, etc. zu vermeiden

bequem paste Zur Ein- und Ausschalten mit einem Tastendruck Sie diese Verknüpfung hinzufügen (ändern <F2>, was auch immer Schlüssel Sie mögen):

+1

Möglicherweise möchten Sie in [eckige-einfügen] (https://github.com/ConradIrwin/vim-bracketed-paste) suchen, um dieses Problem alle zusammen zu vermeiden. [Unimpaired.vim] (https://github.com/tpope/vim-unimpaired) stellt auch 'yo' /' yO' Befehle zur temporären Einstellung von ''paste'' zur Verfügung. –

+0

'set paste' in' ~/.vimrc'override 'set expandtab' – firelyu