Làm thế nào để tôi trực quan chọn văn bản dán cuối cùng với evil-emacs
?
gv
chọn lại lựa chọn hình ảnh cuối cùng. Tôi muốn một hàm / đoạn mã tương tự cho văn bản được dán lần trước của tôi.
Làm thế nào để tôi trực quan chọn văn bản dán cuối cùng với evil-emacs
?
gv
chọn lại lựa chọn hình ảnh cuối cùng. Tôi muốn một hàm / đoạn mã tương tự cho văn bản được dán lần trước của tôi.
Câu trả lời:
Trong tôi .vimrc
có
nnoremap <leader>v '[V']
để làm chính xác điều này.
Thật đáng ngạc nhiên, trình tự '[V']
hoạt động evil
tốt. Để có một phím tắt trong Emacs, tôi đã viết hàm sau:
(defun my/evil-select-pasted ()
(interactive)
(let ((start-marker (evil-get-marker ?\[))
(end-marker (evil-get-marker ?\])))
(evil-visual-select start-marker end-marker)))
Hàm có thể được ràng buộc để <leader>v
sử dụng evil-leader
:
(evil-leader/set-key "v" 'my/evil-select-pasted)
Tôi còn khá mới với Emacs, vì vậy điều này có thể không lý tưởng, nhưng nó hiệu quả với tôi.
Làm thế nào tôi đến đó:
C-h k '
cho thấy '
chạy evil-goto-mark-line
. Nhìn vào nguồn trong các evil-commands.el
chương trình evil-goto-mark-line
sử dụng evil-goto-mark
, chính nó sử dụng evil-get-marker
hàm. Nhìn vào evil-states.el
, tìm thấy với C-h k V
, dẫn đến evil-visual-select
chức năng.
Khi sử dụng giải pháp @andreas để chọn văn bản đã dán lần cuối và cố gắng thay đổi thụt lề trên đó và sau đó lặp lại thụt lề với .
( evil-repeat
), nó đã cho tôi lỗi. Tôi đã phải sửa đổi chức năng để được như thế này, hiện đang hoạt động tốt với tôi:
(defun evil-select-pasted ()
"Visually select last pasted text."
(interactive)
(evil-goto-mark ?\[)
(evil-visual-char)
(evil-goto-mark ?\]))