Làm cách nào để dán văn bản đã được sao chép (alt-w) trước lần dán mới nhất của tôi (ctrl-y)?


7

Khi tôi đã chọn một số văn bản, tôi sử dụng Alt-wđể sao chép vùng và sau đó sử dụng ctrl-yđể dán nó. Có cách nào để dán thứ gì đó tôi đã chọn và sao chép Alt-wtrước khi dán mới nhất không?


1
Hãy thử C-y M-y, lặp lại M-ynhiều lần như bạn phải.
Legoscia

Xem thêm undo-treechế độ.
mankoff

Câu trả lời:


5

Sau khi kéo dài C-y, nhấn M-yđể chạy lệnh yank-pop. Máy ép lặp đi lặp lại sẽ quay vòng qua kill-ring.

Ví dụ: nếu bạn có:

Hello, world!

và bạn giết Helloworld(bạn đã , !rời đi), sau đó đi đến dòng tiếp theo và nhấn:

C-y world

M-y Hello

SPCC-y Hello Hello

C--M-y Hello world


Khi tôi nhấn M-ynó nói lệnh trước đó không phải là một yank
Vass

@Vass Có, bạn sẽ phải chạy lệnh yank( C-y), sau đó nhấn M-yđể duyệt qua.
mẫu

Tôi chọn văn bản và sau đó nhấn Cy và nó được dán tại chỗ
Vass

1
@ Vass Tôi không hiểu ý bạn. C-ychạy lệnh yank, tương tự như khái niệm "dán". Mỗi khi bạn giết văn bản hoặc sao chép nó bằng C-w( kill-ring-save), nó sẽ bị đẩy sang kill-ring. Khi bạn nhấn C-y, phần này sẽ bật phần tử đầu tiên của kill-ringvà chèn nó vào bộ đệm. Các lần nhấn tiếp theo của M-y( kill-ring-pop) sẽ quay vòng qua các phần tử được lưu trong kill-ring.
mẫu

1
@Vass, rất tiếc, đó là một lỗi đánh máy từ phía tôi. Nó nên đọc M-w. Lệnh này là đúng, mặc dù.
mẫu

3

@nanny đã cho bạn câu trả lời. Và nếu M-ynói rằng lệnh trước đó không phải là một yank thì có lẽ bạn đã quên thực hiện C-ytrước. IOW, trước tiên bạn phải thực hiện C-yđể giết chết mới nhất, đó không phải là điều bạn muốn. Sau đó, bạn làm M-yđể có được cái trước đó thay thế. Bạn có thể lặp lại M-yđể quay vòng.

Xem hướng dẫn sử dụng Emacs, Yanking nút để biết thông tin chung về sao chép và dán, và kill-ring.


Dù sao, tôi muốn đề cập đến lựa chọn thứ cấp . Đặc biệt, nó có thể rất tiện dụng trong các tình huống mà bạn có thể muốn sử dụng C-y M-y.

Lựa chọn thứ cấp chỉ là những gì nó nói: lựa chọn thứ hai, không liên quan đến lựa chọn đó là khu vực trong Emacs. Nó vẫn có sẵn bất kể khu vực đó đang hoạt động và vị trí của nó không bị ảnh hưởng bởi điểm hoặc nhãn hiệu.

Nếu bạn sử dụng thư viện second-sel.elthì bạn sẽ nhận được nhiều lợi thế của kill-ring(dành cho khu vực) cho lựa chọn thứ cấp. Nó thêm lựa chọn thứ cấp vào vòng chọn thứ hai secondary-selection-ring, tương tự, nhưng tách biệt với kill-ring. Nó cũng ngăn không cho lựa chọn thứ cấp được thêm vào kill-ring, vì vậy bây giờ bạn có hai vòng lịch sử lựa chọn riêng biệt.

M-y sau đó quay vòng các mục từ vòng thích hợp, tùy thuộc vào việc nó đi theo một vòng của chính (vùng) hay dán của lựa chọn thứ cấp.


vì vậy tôi không sử dụng Alt-w để sao chép? Tôi phải giết nó?
Vass

2
Không, bạn có thể sử dụng M-w(Alt-w, nếu bạn muốn) để sao chép. Nếu bạn làm C-h k M-wbạn sẽ thấy điều đó M-wbị ràng buộc kill-ring-savevà bạn sẽ thấy lệnh đó làm gì - nó sao chép vùng vào kill-ring. Các bit của văn bản trong kill-ringđược gọi là "giết chết", cho dù chúng có ở đó bằng cách giết văn bản hoặc sao chép văn bản (ví dụ: sử dụng M-w).
vẽ

2

Giải pháp tốt nhất tôi tìm thấy là helm-show-kill-ring. Tôi đã sử dụng Helm khá lâu trước khi tôi nhận ra điều này tồn tại. Tôi có nó ràng buộc với M-y. Nó làm cho nó rất nhanh và dễ dàng để xem các mục hiện có, thu hẹp chúng và chọn mục bạn muốn.


1

Sau khi bạn dán, M-ysẽ thay thế văn bản đã dán bằng văn bản đã sao chép trước đó.

Nếu bạn nhấn M-ynhiều lần thì bạn có thể chuyển qua tất cả văn bản đã sao chép (hoặc cắt / giết) trước đó


0

Nếu bạn muốn dễ dàng xem các đoạn văn bản bị sao chép và bị hủy trước đó và chọn một hoặc nhiều đoạn như vậy, chúng có thể giúp:

  • Duyệt Kill Ring - Duyệtkill-ringđể chọn kill để yank. Trang đó hiển thị một số thư viện thay thế cung cấp hành vi này theo những cách khác nhau. Một trong những chính làbrowse-kill-ring.el.

  • Icicles -

    • M-y: Yank từ một trong hai kill-ringhoặc secondary-selection-ring, tùy thuộc vào loại yank cuối cùng (bạn cần thư viện second-sel.elcho phương án thứ hai). Nếu lệnh cuối cùng không phải là một yank thì đây cũng giống như C-- C-y(xem tiếp).
    • C-- C-y( C-yvới tiền tố phủ định arg): Cho phép bạn chọn bất kỳ số lần giết nào để chèn bằng cách sử dụng hoàn thành. Trong quá trình hoàn thành, bạn có thể sử dụng:

      • C-, để sắp xếp các ứng cử viên theo cách khác nhau (lặp lại)
      • S-delete để loại bỏ một ứng cử viên từ vòng tuyển chọn
      • C-S-return để sao chép một ứng cử viên vào vòng lựa chọn khác
  • Helm - Xem câu trả lời của @ bluejaytrên trang này.

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.