¿Cómo selecciono visualmente el último texto pegado evil-emacs
?
gv
vuelve 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
?
gv
vuelve 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 .vimrc
tengo
nnoremap <leader>v '[V']
para hacer exactamente esto
Sorprendentemente, la secuencia '[V']
funciona evil
bien. 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>v
usando 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.el
muestra que evil-goto-mark-line
utiliza evil-goto-mark
, que en sí hace uso de la evil-get-marker
función. Mirar evil-states.el
, encontrado con C-h k V
, conduce a la evil-visual-select
funció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 ?\]))