Làm thế nào để ghi đè một hình chữ nhật được sao chép thay vì chèn nó (đó là hành vi mặc định của hình chữ nhật yank)?


8

Sau khi sao chép một "hình chữ nhật" bằng cách sử dụng C-x r M-w, thực hiện C-x r yyanks hoặc dán hình chữ nhật. Nhưng điều đó chèn hình chữ nhật sao chép.

Làm thế nào tôi có thể dán hình chữ nhật được sao chép để nó ghi đè lên văn bản?

Thí dụ:

 a b c d e f g
 h i j k▮l m n
 o p q r s t u▮

Tôi đã sao chép hình chữ nhật kèm theo giữa các vị trí con trỏ được hiển thị ở trên bằng cách sử dụng M-x copy-rectangle-as-killhoặc C-x r M-w.

Bây giờ khi tôi dán nó trước mặt nhân vật hbằng cách sử dụng M-x yank-rectanglehoặc C-x r y, tôi muốn kết quả trông giống như

 a b c d e f g
▮l m n k l m n
 s t u r s t u

thay vì

 a b c d e f g
▮l m n h i j k l m n
 s t u o p q r s t u

Làm thế nào tôi có thể yank-rectangleghi đè?


Làm việc cho tôi. Hãy thử chạy Emacs với cờ -Q để sử dụng cấu hình mặc định. Nếu nó hoạt động thì nó sẽ là một cái gì đó trong cấu hình của bạn.
Colin Bell

Ah! Tôi hỏi nhầm câu hỏi ngược. Ý tôi là tìm cách C-x r yghi đè lên. Tôi đang chỉnh sửa câu hỏi của tôi bây giờ.
Kaushal Modi

Câu trả lời:


8

Sử dụng M-x picture-mode. C-c C-y, ràng buộc với lệnh picture-yank-rectangle, làm những gì bạn muốn. (Bạn có thể sử dụng C-_để hoàn tác.)

Các khóa liên quan này cũng có sẵn trong picture-mode:

  • C-c C-k- Xóa một hình chữ nhật và lưu nó ( picture-clear-rectangle)
  • C-c C-w- Xóa một hình chữ nhật và lưu nó trong một thanh ghi ( picture-clear-rectangle-to-register)
  • C-c C-x- Thích C-c C-y, nhưng sử dụng hình chữ nhật trong một thanh ghi ( picture-yank-rectangle-from-register)
  • C-x r r- Sao chép một hình chữ nhật vào một thanh ghi ( copy-rectangle-to-register)

Sử dụng C-c C-cđể thoát chế độ hình ảnh.

Bạn cũng có thể sử dụng các lệnh chế độ hình ảnh mà không cần bật picture-mode, nhưng trong trường hợp đó, các phím của chúng không bị ràng buộc. Dù sao bạn cũng sẽ cần tải thư viện picture.

Vì vậy, bạn có thể, ví dụ, làm điều này:

  1. Sử dụng C-x r rđể sao chép một hình chữ nhật vào một thanh ghi.
  2. Đặt con trỏ ở nơi bạn muốn kéo hình chữ nhật đó, thay thế văn bản hiện có.
  3. M-x picture-yank-rectangle-from-register (mà bạn cũng có thể liên kết với một khóa).

1
Cảm ơn! Các M-x picture-yank-rectangle-from-registergiải pháp hoạt động tuyệt vời đối với tôi; Tôi chỉ cần đặt (require 'picture)vào của tôi init.el.
Kaushal Modi

1

Một cách tiếp cận khác là sử dụng delete-selection-modevà thực hiện điều này trong tệp init của bạn:

 (put 'yank-rectangle 'delete-selection 'yank)

Nhưng điều đó làm cho yank-rectangle luôn luôn thay thế văn bản tại điểm, có thể không phải là những gì bạn muốn.

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.