2009-06-12 22 views
25

Khi tôi đang cố gắng dán một số mã từ trình duyệt vào Emacs, nó sẽ tự động nhập mã, có cách nào để dừng Emacs tạm thời thụt lùi như : đặt dán trong vim không?Bất kỳ lệnh Emacs nào giống như chế độ dán trong vim?

+5

Bạn có dán vào thiết bị đầu cuối không? Điều này sẽ không xảy ra nếu bạn đang dán vào các Emacs GUI được dán "trực tiếp"; khi bạn đang dán vào thiết bị đầu cuối, nó có hiệu quả như gõ tất cả các ký tự một. – ShreevatsaR

+1

Điều này có xảy ra ở tất cả các chế độ/bộ đệm không? Hay chỉ một số? Bạn đã cố gắng dán vào Emacs khi bạn bắt đầu emacs w/ra các tùy chỉnh của bạn (ala 'emacs -q')? –

+0

Không biết về 'dán' — cảm ơn! – andrewdotn

Trả lời

23

Cách đơn giản nhất với emacs24 là:

M-x electric-indent-mode RET 

Đó vô hiệu hóa tự động thụt đầu dòng.

Dán đồ đạc của bạn.

renable

M-x electric-indent-mode RET 

Hoặc chỉ cần M-x UP-Arrow ;-)

+0

Tôi muốn có thể thêm một móc để khi tôi dán, điều này sẽ tự động bị tắt và sau đó được bật lại. Có ai có ý kiến ​​gì không? – ohruunuruus

+0

Tôi nghĩ rằng bạn có thể bằng cách có ràng buộc chính của bạn ghi đè Cc và gọi một chức năng thực hiện điều này, gọi là dán từ CUA hoặc https://www.emacswiki.org/emacs/CuaMode – Maresh

-1

Bạn có thể thử

c-toggle-syntactic-indentation 
+0

c-toggle-syNtactic-indentation – PanCrit

+0

Cảm ơn bạn đã đánh cắp lỗi đánh máy. Đã sửa. – mamboking

13

Chuyển vào bộ đệm *scratch* (hoặc chỉ để một số bộ đệm không tồn tại, nó sẽ ở chế độ cơ bản, mà không nên làm bất cứ autoindentation trừ khi bạn đã cấu hình bằng cách nào đó nó làm như vậy), nhập C-SPC để bắt đầu khu vực, dán văn bản của bạn, nhập C-w để cắt nó trong Emacs, chuyển về bộ đệm ban đầu của bạn, nhập C-y để dán.

+0

Đây là một cách giải quyết tốt đẹp, mặc dù không * khá * cùng một điều. Ví dụ, tôi lưu ý rằng điều này vẫn đưa ra một cảnh báo cho dấu ngoặc đơn không khớp, khi dán vào văn bản (vào một cá thể Emacs dựa trên đầu cuối) có một biểu tượng mặt cười. (':)') Sẽ tốt hơn nếu có một loại "chế độ" (sử dụng thuật ngữ đó rất lỏng lẻo) để tắt tất cả những thứ như vậy (vì chúng có thể làm cho quá trình dán mất một thời gian dài, nếu nó là một phần lớn bản văn). Tuy nhiên, điều này được xung quanh một số khía cạnh, ít nhất - và giải quyết rõ ràng vấn đề chính của người hỏi ban đầu. – lindes

+0

Điều này không hoạt động cho rất nhiều nguyên nhân đầu vào. Lý do là khi bạn dán văn bản được mã hóa cửa sổ/dos, \ r \ n buộc xuất hiện của tab. Chuyển tập tin trên cửa sổ để kết thúc dòng unix nếu bạn có thể, và nó dừng lại – easytiger

+0

Dán vào bộ đệm đầu loại bỏ tất cả thụt đầu dòng cho tôi. Tôi muốn duy trì sự thụt đầu dòng có trong văn bản đã sao chép. Các giải pháp vô hiệu hóa các công trình chế độ indent điện. – ishmael

3

Một cách giải quyết nhanh chóng cho Python là để dán vào một khối """ ... """.

2

lệnh yank được đặt trước C-uC-y sẽ bị chìm mà không thụt đầu dòng. Làm việc với Emacs 25.

+0

@Bae vui mừng nhận xét của tôi đã giúp, vì vậy Tôi đã trả lời từ nó. – 4e6

Các vấn đề liên quan