Wenn ich Linien mit m
(z. B. :m+1
) bewege, sind alle meine Falten geschlossen. Ich kann dann die Falte mit zv
wieder öffnen und der Cursor befindet sich an der Position, an die ich mich bewegt habe. Ich benutze Falten mit {{{ }}}
Markierungen und habe set foldmethod=marker
in meiner .vimrc.
Wie kann ich verhindern, dass vim beim Verschieben von Linien Falten schließt?
vim -u NONE -U NONE -N
. Möglicherweise liegt ein Problem mit Ihrem vimrc oder einem Plugin vor.vim -u NONE -U NONE -N fold-test
und nur einstellenfoldmethod=marker
. Ich verwende Vim 7.4.712 auf Arch. Wenn ich dasselbe mit Vim unter Vim 7.4.160 unter CentOS 7 versuche, erhalte ich genau die entgegengesetzten Ergebnisse (bei Verwendung alle Falten offen:m+1
). Und Vim 7.2.441 unter CentOS 6 funktioniert einwandfrei ... Allefold*
Einstellungen scheinen auf diesen Computern gleich zu sein.Antworten:
Sie können das Falten deaktivieren, bevor Sie es
:m+1
verwendenzi
. Und dann wieder aktivieren mitzi
.Sie können auch eine spezielle Zuordnung dazu in Ihrer .vimrc hinzufügen:
quelle
Das Falten ist ein ziemlich komplizierter Mechanismus (siehe eine andere Antwort, die ich über Falten gegeben habe, für eine differenzierte Diskussion des Faltenscannens).
Um eine vollständige Antwort zu geben, müssen wir sehen, welche Art von Plugins Sie beim Booten einer Instanz von vim laden.
Ich wette, dass es ein paar Plugins gibt, die mit den vim-Standardeinstellungen nicht mithalten können (
vim -u NONE
sollte dies reproduziert haben). Jedes Plugin, das das ändert,foldmethod
ist eine wahrscheinliche Ursache (ich würde versuchen, sie 1 zu 1 zu entfernen und zu sehen, was das Problem verursacht).Wenn Sie sich überhaupt nicht mit Ihren Plugins herumschlagen möchten, würde ich empfehlen, die Einstellungen für Syntax und Analyse manuell zu ändern und dann einen Testpuffer zu öffnen, um Ihre Funktionalität zu bestätigen. Es kann eine frustrierende Reise sein, es zum Spielen zu bringen, aber mit einigem unerbittlichen Eingraben
:help
sollten Sie in der Lage sein, das Tier, das sich faltet, zu streiten.quelle