Verhindern Sie, dass (g) vim Kommentare automatisch einrückt
-
27-10-2019 - |
Frage
Vor einiger Zeit musste ich setzen
filetype plugin on
in meiner .vimrc für ein Plugin, das ich verwende.
Dies führte jedoch zu einer Änderung der automatischen Einrückung: Immer wenn ich einen Kommentar "//" schreibe und dann die Eingabetaste drücke, gibt die automatische Einrückung von vim in der nächsten Zeile automatisch ein weiteres "//" ein.
// This is a comment. <ENTER>
// <-- vim automatically puts '// ' there
Was kann ich tun, um dies zu vermeiden? Ich verwende die Autoindent-Einstellung in meiner VIM-Datei. Ich habe es bereits versucht
filetype plugin indent off
aber es funktioniert nicht.
Lösung
Sehen Sie sich :h formatoptions
und :h fo-table
an.Die Optionen, die Sie deaktivieren müssen, sind r
und o
.Durch Deaktivieren wird verhindert, dass vim den Kommentar-Leader (in diesem Fall "//") automatisch einfügt, wenn Sie im Einfügemodus die Eingabetaste drücken oder wenn Sie im normalen Modus o
oder O
drücken.
Andere Tipps
Siehe :help 'formatoptions'
- ich weiß, wie nervig das ist!
Versuchen Sie Folgendes:
:set fo-=or
Ich beantworte eher Ihren Titel als den Text Ihrer Frage, da Ihr Titel Personen auf diese Seite bringt, die Vim davon abhalten möchten, Kommentare einzurücken.
Die Variable, die steuert, ob Vim ein neues Zeichen automatisch einrückt, ist indentkeys
.Ich habe nur in Python und Yaml eine falsche Einrückung festgestellt, daher habe ich die automatische Einrückung nur für das Zeichen "#" am Anfang der Zeile deaktiviert: :set indentkeys-=0#
Da das Laden des Einzugs-Plugins für Dateitypen alle von Ihnen vorgenommenen .vimrc-Einstellungen überschreibt, können Sie einen autocmd
einrichten, um die Einrückungsschlüssel nach dem Erstellen oder Laden einer Datei zu ändern.Hier sind meine:
autocmd BufNewFile,BufReadPost * if &filetype == "python" | set indentkeys-=0# | endif
autocmd BufNewFile,BufReadPost * if &filetype == "yaml" expandtab shiftwidth=2 indentkeys-=0# | endif
Siehe : h indentkeys
Beachten Sie, dass Sie bei Verwendung von Neovim (möglicherweise) aufgrund eines Fehlers auch filetype plugin indent on
angeben müssen, da sonst der Dateityp nicht festgelegt wird.