Vim unter Win 7 ändert meine shiftwidth-Einstellung zu etwas, das ich nicht nur für .sml-Dateien möchte.Vim ändert shiftwidth für .sml-Dateien
Was ich will, ist alles nur mit Leerzeichen eingerückt, und für alles immer 4 Leerzeichen. Dies ist der Inhalt meiner aktuellen _vimrc Datei, obwohl ich viele Variationen ausprobiert habe:
set nocompatible
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set guifont=Consolas:h9:cANSI
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
filetype plugin indent on
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Wenn ich ohne Datei zuerst Vim starten geladen, :set shiftwidth
kehrt shiftwidth=4
. Wenn ich eine .py oder .php Datei öffne, gibt es immer noch shiftwidth=4
zurück. Wenn ich eine .sml-Datei öffne oder die leere Datei mit der Erweiterung .sml speichere, wird sie in shiftwidth=2
geändert. Manuelle Einstellung :set shiftwidth=2
funktioniert für diese Sitzung, aber ich muss es jedes Mal tun, wenn ich eine .sml-Datei öffne.
Es betrifft nur Puffer mit einer geöffneten .SML-Datei. Nicht gespeicherte Puffer oder solche mit einem anderen Dateityp, die gleichzeitig geöffnet sind, zeigen shiftwidth = 4.
Ich war nicht mit dem Dateityp Plugin Einzug Sache, aber nach einigem Suchen schien es, dass das Problem sein könnte. Es gab keine Dateien in meinem ftplugin Ordner, so dass ich hinzugefügt filetype plugin indent on
meine _vimrc, erstellt sml.vim und stecken es in dem ftplugin Ordner (wieder viele Variationen versucht zu haben:
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Ich weiß sml.vim sein wird lesen, weil ich Fehler in es an die erste Stelle setzen, und sie gefangen wurden.
nicht sicher, ob dies relevant ist, aber es gibt nichts über .sml in meinem indent.vim, und mein Einzug Ordner leer.
doch Vim setzt immer noch shiftwidth = 2, wenn ich eine .sml-Datei lade.Ich würde gerne wissen, warum.
Update: Der Einzugsordner, den ich sagte, leer war vim \ vimfiles \ Einzug. Nach der Antwort und den Kommentaren unten suchte ich nach sml.vim und fand einen anderen Einrückungsordner, vim \ vim73 \ indent. Ich habe sml.vim bearbeitet und shiftwidth = 2 zu shiftwidth = 4 geändert und das Problem wurde gelöst.
laden eine .sml Datei und starten Sie ': Verb gesetzt sw' - es wird Ihnen sagen, wo es das letzte Mal einstellen. – sidyll