Frage

Ich habe mich eingeschaltet filetype plugin für einige Rails vim-Plugins habe ich hinzugefügt, aber ein Nebeneffekt davon scheint zu sein, dass jetzt das automatische Kommentieren in allen Dateitypen aktiviert wurde (zum Beispiel, wenn ich eine Zeile mit beginne #, die nächste Zeile, entweder durch Geben im Einfügemodus oder O, usw.um in den Einfügemodus zu gelangen, wird auch ein #).

Ich habe eine gefunden Guide so deaktivieren Sie die automatische Kommentierung formatoptions, und fügte folgendes zu meinem hinzu .vimrc:

au FileType * setlocal formatoptions-=cro

Ich habe jedoch immer noch Probleme - es sei denn, ich habe ausdrücklich :source .vimrc, (oder geben Sie die setlocal ... direkt), wird es nicht wirksam.Ich habe festgestellt, dass dies der Fall ist, weil die ftplugins von vim meine Optionen mit ihren eigenen überschreiben.

Ich habe dann eine gefunden zweiter Leitfaden was über die Verwendung eines After-ftplugin-Skripts spricht, um Änderungen vorzunehmen, nachdem die ftplugin-Skripte ausgeführt wurden. Ihre Lösung besteht jedoch darin, Symlinks für jeden einzelnen Dateityp in ~/ zu erstellen.vim / after / ftplugin in eine zentrale Datei, und das scheint mir klumpig zu sein.

Gibt es eine Möglichkeit, ein generisches After-ftplugin-Skript zu erstellen, oder gehe ich dieses Problem falsch an?Jede Hilfe wäre dankbar.

War es hilfreich?

Lösung

Wie wäre es mit einem "Nachher" -Plugin?Erstellen Sie eine Datei in ~/.vim/after/plugin/ namens noAutoComments.vim (oder was auch immer) und platziere deine autocmd darin?

Bearbeiten:

Der Grund, warum das funktioniert?Ich rate hier nur, aber ich habe das Gefühl, dass die autocmd in der ~/.vimrc die Datei wird von einer anderen Datei entfernt (aber bevor die "Nachher" -Dateien bezogen werden).

Am Ende habe ich meine entfernt ~/.vim verzeichnis und ersetzte mein ~/.vimrc mit den folgenden 3 Zeilen:

filetype plugin on
syntax on
au FileType * setlocal formatoptions-=cro

Mit nur diesen Zeilen in meinem ~/.vimrc und nein ~/.vim/ verzeichnis, das autocmd scheint wie erwartet zu funktionieren (Vim 7.1).

Für jede Datei, die ich bearbeite:

:verbose set formatoptions?
formatoptions=ql
      Last set from ~/.vimrc

Ich muss jedoch noch feststellen, welche Datei (Plugin) dieses Problem verursacht.

Andere Tipps

Ich habe weitere Nachforschungen angestellt und es scheint, dass der Standort meines autocmd innerhalb meiner .vimrc-Datei bestimmt, ob formatoptions wird von vims ftplugins überschrieben oder nicht.Wobei vim --noplugin um alle externen Plugins zu deaktivieren, habe ich die folgenden Ergebnisse gefunden:

Wenn mein vimrc so aussieht:

au FileType * setl fo-=cro
filetype plugin indent on

Das Ergebnis von :verbose set fo? is:

formatoptions=croql
  Last set from /usr/share/vim/vim72/ftplugin/ruby.vim

Wenn jedoch die Zeilen in meinem vimrc umgekehrt sind:

filetype plugin indent on
au FileType * setl fo-=cro

Das Ergebnis von :verbose set fo? is:

formatoptions=ql
  Last set from ~/.vimrc

...welches ist das gewünschte Ergebnis.Es scheint also, dass die autocmd muss angegeben werden, nachdem Dateityp-Plugins aktiviert wurden.

Ein weiterer Grund, warum dies möglicherweise nicht wirksam wird...

Von :he :set-=:

            When the option is a list of flags, {value} must be
            exactly as they appear in the option.  Remove flags
            one by one to avoid problems.

Ich habe

    " Turn off auto-commenting
    au FileType * setlocal formatoptions-=c
    au FileType * setlocal formatoptions-=r
    au FileType * setlocal formatoptions-=o

weil ich darauf gestoßen bin.

Mit einem der verschiedenen autocmd ereignisse zum Festlegen der Konfigurationsoption sollten funktionieren, wenn Sie die richtige finden, aber ich würde zunächst ausführen:

:verbose set formatoptions?

Dadurch erfahren Sie, wo die Option festgelegt wurde, wodurch Sie möglicherweise leichter bestimmen können, welches autocmd verwendet werden soll.Alternativ, wenn es Ihnen nichts ausmacht, ein bisschen kleineres Hacken, würde ich es wahrscheinlich nur tun, um herauszufinden, wo es im Plugin eingestellt ist, und diese Zeile auskommentieren (und notieren Sie es sich falls Sie jemals das Plugin aktualisieren).Sie können sich auch an den Autor des Plugins wenden und ihn bitten, es zu einer konfigurierbaren Option zu machen.

Für die verfügbaren autocmd ereignisse, lesen Sie dies:

:help {event}

Ich habe von vielen vorgeschlagene Lösungen ausprobiert, aber keine davon hat bei mir funktioniert, aber ich habe eine sehr einfache Problemumgehung gefunden, nämlich in Ihrem ~/ .bash_aliases:

    # vim without auto comment
    alias vi="vi +'set fo-=cro'"

Ich hatte mit diesem Problem zu kämpfen und arbeite endlich mit den folgenden Zeilen:

syntax on
filetype on
filetype plugin on
au FileType * setlocal formatoptions-=cro

Ich denke, der Schlüssel hier ist, dass die autocmd ist Platz nach dem filetype plugin on.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top