Evil-emacs: làm thế nào để chọn văn bản được dán lần cuối (như gv)?


7

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ó vẻ như bạn đang yêu cầu ai đó viết cho bạn một gói ...
wasamasa

Tôi đã suy nghĩ như thế này phải tồn tại. Sẽ cố gắng tự làm điều đó sau đó.
Mèo Unun

Câu trả lời:


5

Trong tôi .vimrc

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.


Không hoạt động trong spacemacs, nhưng chấp nhận tất cả giống nhau, vì tôi đã chỉ định cái ác :)
Mèo Unun 20/03/2016

làm việc cho tôi trong spacemacs mới nhất, chi nhánh dev.
Meitham

2

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 ?\]))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.