Wie wähle ich den zuletzt eingefügten Text visuell aus evil-emacs?
gvwählt die letzte visuelle Auswahl erneut aus. Ich möchte eine Funktion / ein Snippet, die das Gleiche für meinen zuletzt eingefügten Text tut.
Wie wähle ich den zuletzt eingefügten Text visuell aus evil-emacs?
gvwählt die letzte visuelle Auswahl erneut aus. Ich möchte eine Funktion / ein Snippet, die das Gleiche für meinen zuletzt eingefügten Text tut.
Antworten:
In meinem .vimrchabe ich
nnoremap <leader>v '[V']
genau das zu tun.
Erstaunlicherweise '[V']funktioniert die Sequenz evileinwandfrei. Um eine Verknüpfung in Emacs zu haben, habe ich die folgende Funktion geschrieben:
(defun my/evil-select-pasted ()
(interactive)
(let ((start-marker (evil-get-marker ?\[))
(end-marker (evil-get-marker ?\])))
(evil-visual-select start-marker end-marker)))
Die Funktion kann zB gebunden werden <leader>vmit evil-leader:
(evil-leader/set-key "v" 'my/evil-select-pasted)
Ich bin relativ neu bei Emacs, daher ist dies möglicherweise nicht ideal, aber es funktioniert für mich.
Wie ich dorthin gekommen bin:
C-h k 'zeigt, dass 'läuft evil-goto-mark-line. Ein Blick auf die Quelle in evil-commands.elzeigt, dass evil-goto-mark-lineverwendet evil-goto-mark, die selbst die evil-get-markerFunktion nutzt . Betrachten evil-states.el, gefunden mit C-h k V, führt zur evil-visual-selectFunktion.
Bei Verwendung der @ andreas-Lösung zur Auswahl des zuletzt eingefügten Textes und beim Versuch, den Einzug darauf zu ändern und dann den Einzug mit .( evil-repeat) zu wiederholen , gab es Fehler. Ich musste die Funktion so ändern, dass sie jetzt für mich gut funktioniert:
(defun evil-select-pasted ()
"Visually select last pasted text."
(interactive)
(evil-goto-mark ?\[)
(evil-visual-char)
(evil-goto-mark ?\]))