Como seleciono visualmente o último texto colado evil-emacs
?
gv
seleciona novamente a última seleção visual. Gostaria de uma função / snippet que faça o mesmo no meu último texto colado.
Como seleciono visualmente o último texto colado evil-emacs
?
gv
seleciona novamente a última seleção visual. Gostaria de uma função / snippet que faça o mesmo no meu último texto colado.
Respostas:
No meu .vimrc
eu tenho
nnoremap <leader>v '[V']
para fazer exatamente isso.
Surpreendentemente, a sequência '[V']
funciona evil
muito bem. Para ter um atalho no Emacs, escrevi a seguinte função:
(defun my/evil-select-pasted ()
(interactive)
(let ((start-marker (evil-get-marker ?\[))
(end-marker (evil-get-marker ?\])))
(evil-visual-select start-marker end-marker)))
A função pode ser vinculada, por exemplo, <leader>v
usando evil-leader
:
(evil-leader/set-key "v" 'my/evil-select-pasted)
Sou relativamente novo no Emacs, portanto isso pode não ser o ideal, mas funciona para mim.
Como cheguei lá:
C-h k '
mostra que '
é executado evil-goto-mark-line
. Observar a fonte em evil-commands.el
shows que evil-goto-mark-line
usa evil-goto-mark
, que por si só faz uso da evil-get-marker
função. Olhar evil-states.el
, encontrado com C-h k V
, leva à evil-visual-select
função.
Ao usar a solução @andreas para selecionar o último texto colado e tentar alterar o recuo nele e, em seguida, repetir o recuo com .
( evil-repeat
), ocorreram erros. Eu tive que modificar a função para ficar assim, que agora funciona bem para mim:
(defun evil-select-pasted ()
"Visually select last pasted text."
(interactive)
(evil-goto-mark ?\[)
(evil-visual-char)
(evil-goto-mark ?\]))