¿Cómo selecciono visualmente el último texto pegado evil-emacs?
gvvuelve a seleccionar la última selección visual. Me gustaría una función / fragmento que haga lo mismo para mi último texto pegado.
¿Cómo selecciono visualmente el último texto pegado evil-emacs?
gvvuelve a seleccionar la última selección visual. Me gustaría una función / fragmento que haga lo mismo para mi último texto pegado.
Respuestas:
En mi .vimrctengo
nnoremap <leader>v '[V']
para hacer exactamente esto
Sorprendentemente, la secuencia '[V']funciona evilbien. Para tener un acceso directo en Emacs, escribí la siguiente función:
(defun my/evil-select-pasted ()
(interactive)
(let ((start-marker (evil-get-marker ?\[))
(end-marker (evil-get-marker ?\])))
(evil-visual-select start-marker end-marker)))
La función se puede unir a, por ejemplo <leader>vusando evil-leader:
(evil-leader/set-key "v" 'my/evil-select-pasted)
Soy relativamente nuevo en Emacs, por lo que esto podría no ser ideal, pero funciona para mí.
Cómo llegué allí:
C-h k 'muestra que 'corre evil-goto-mark-line. Mirando la fuente en evil-commands.elmuestra que evil-goto-mark-lineutiliza evil-goto-mark, que en sí hace uso de la evil-get-markerfunción. Mirar evil-states.el, encontrado con C-h k V, conduce a la evil-visual-selectfunción.
Cuando utilicé la solución @andreas para seleccionar el último texto pegado e intenté cambiar la sangría y luego repetir la sangría con .( evil-repeat) me dio errores. Tuve que modificar la función para que sea así, que ahora funciona bien para mí:
(defun evil-select-pasted ()
"Visually select last pasted text."
(interactive)
(evil-goto-mark ?\[)
(evil-visual-char)
(evil-goto-mark ?\]))