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?
gvchọ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?
gvchọ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 .vimrccó
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 eviltố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>vsử 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.elchương trình evil-goto-mark-linesử dụng evil-goto-mark, chính nó sử dụng evil-get-markerhàm. Nhìn vào evil-states.el, tìm thấy với C-h k V, dẫn đến evil-visual-selectchứ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 ?\]))