Làm thế nào để bình luận một khối mã trong Emacs?


13

Trong Emacs, làm thế nào để nhận xét một khối văn bản, tức là làm thế nào để thụt một khối văn bản sang phải bằng các nký tự khoảng trắng và đặt một chuỗi ký tự được chọn ##, ở đầu mỗi dòng?

Nguyên

foo
bar foobar
   foo bar

Mong muốn:

# foo
# bar foobar
#    foo bar
  • Tôi cần một phương pháp không can thiệp vào chế độ CUA.
  • comment-dwin không cho phép tôi chọn chuỗi ký tự tùy ý.

Câu trả lời:


15

Một cách là sử dụng string-rectangle( C-x r t).

Đánh dấu khối, sau đó gọi string-rectanglevà đưa ra ##dưới dạng một chuỗi để chèn.


3
Dưới đây là các bước cụ thể hơn: 1) di chuyển con trỏ đến đầu 2) C-M-@3) di chuyển con trỏ đến cuối 4) C-x r t5) loại ký tự tiền tố loại, chẳng hạn như ## , nhấnENT
qazwsx

nó cũng có thể làm ngược lại?
mustISignUp

Bạn có thể chọn một hình chữ nhật và xóa nó bằngC-x R K
Juancho

11

Tùy thuộc vào chế độ bạn đang chạy (ví dụ: Chế độ CC, Chế độ Lisp), bạn có thể chọn vùng và sau đó sử dụng lệnh comment-region(thường được liên kết với Cc Cc. Nếu mọi thứ được đặt chính xác, nên sử dụng các ký tự nhận xét phù hợp cho loại tệp bạn đang chỉnh sửa


9
Điều này khác với M-;như thế nào?
qazwsx

4
@duperuser M-;là một lệnh bình luận tổng quát hơn. Khi không có vùng hoạt động, nó sẽ chèn một bình luận (sau bất kỳ câu lệnh nào trên dòng và xếp hàng với cột bình luận). Khi một vùng được chọn, nó sẽ hoạt động như thế nào comment-region. Khi không có vùng hoạt động, comment-regionkhông chèn bình luận.
jwernerny

Không chỉ có vậy, nhưng comment-region, không giống như comment-dwim(đó là M-;theo mặc định) cho phép bạn linh hoạt tổ và unnest khối bình luận. Sử dụng đơn giản C-uđể không nhất định một cấp độ lồng. (Tôi liên kết C-x C-;với comment-region. Trên thực tế, tôi liên kết nó comment-region-linestừ misc-cmds.el.)
Drew

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.