Hier ist, was die Dokumentation von Vim dazu sagt:
Virtuelle Bearbeitung bedeutet, dass der Cursor dort positioniert werden kann, wo kein tatsächliches Zeichen vorhanden ist. Dies kann sich auf halber Strecke in einem Tab oder über das Zeilenende hinaus befinden. Nützlich, um ein Rechteck im visuellen Modus auszuwählen und eine Tabelle zu bearbeiten.
Ich würde dies am liebsten als Nebenmodus oder als integrierte Einstellung sehen.
text-editing
vim-emulation
rectangle
Kindermädchen
quelle
quelle
C-f
. Wenn Sie danach an einem Rechteck ziehen, wird das Rechteck an der Markierung anstelle des Punkts angezeigt. Wenn es an dem Punkt auftauchte, würde dies das Problem lösen.Antworten:
Die
extend-rectangle-to-end
Funktion imrectangle-utils
Paket ist was Sie wollen. Es ist anmelpa
.Es werden Leerzeichen eingefügt, um die aktuelle Rechteckauswahl so zu erweitern, dass sie die längste Linie in der Region abdeckt.
Um dieses Verhalten zu erhalten, habe ich dies in meinem init.el.
C-x r e
ist an nichts anderes in Vanille-Emacs gebundenquelle
M-x extend-rectangle-to-end
und dannC-x r M-w
oderC-x r k
.Eine andere Antwort: verwenden
M-x picture-mode
. Sie können Rechtecke durch die Mitte von Tabulatoren usw. töten oder kopieren, sie an Register senden usw.quelle
extend-rectangle-to-end
da die Rechteckauswahl damit immer 30x2 ist.picture-mode
ist alt und wenig bekannt. Unter anderen wenig bekannten Merkmalen: Exiting (C-c C-c
) entfernt abschließende Leerzeichen.rectangle-minor-mode
, sich "einwickeln" zu lassenpicture-mode
? (Hinweis da ich keine Haken in der Quelle von seherectangle-minor-mode
).(defun rectangle-mark-mode-wrapped-in-picture-mode (orig-fun &rest args) (if rectangle-mark-mode (picture-mode) (and (eq major-mode 'picture-mode) (picture-mode-exit t))))
(advice-add 'rectangle-mark-mode :around #'rectangle-mark-mode-wrapped-in-picture-mode)