Bagaimana cara mengomentari satu blok kode di Emacs?

12

Di Emacs, cara mengomentari blok teks, mis. Cara indentasi blok teks oleh n karakter spasi putih dan menempatkan urutan karakter yang dipilih, katakanlah ##, di awal setiap baris?

Asli

foo
bar foobar
   foo bar

Diinginkan:

# foo
# bar foobar
#    foo bar
  • Saya membutuhkan metode yang tidak mengganggu mode CUA.
  • comment-dwin tidak mengizinkan saya untuk memilih urutan karakter yang berubah-ubah.
qazwsx
sumber

Jawaban:

13

Salah satu caranya adalah menggunakan string-rectangle ( C-x r t ).

Tandai blok, lalu panggil string-rectangle dan memberi ## sebagai string untuk disisipkan.

Juancho
sumber
2
Berikut langkah-langkah yang lebih konkret: 1) pindahkan kursor ke awal 2) C-M-@ 3) pindahkan kursor ke ujung 4) C-x r t 5) ketik urutan karakter awalan, seperti ## , tekan ENT
qazwsx
Apakah mungkin untuk melakukan invers?
mustISignUp
Anda dapat memilih kotak dan menghapusnya dengan C-x R K
Juancho
11

Bergantung pada mode apa yang Anda jalankan (mis. Mode CC, Mode Lisp) Anda dapat memilih wilayah dan kemudian menggunakan perintah comment-region (biasanya terikat ke C-c C-c. Jika semuanya diatur dengan benar, itu harus menggunakan karakter komentar yang sesuai untuk jenis file yang Anda edit.

jwernerny
sumber
7
Bagaimana ini berbeda dari M-;?
qazwsx
4
@duperuser M-; adalah perintah komentar yang lebih umum. Ketika tidak ada wilayah aktif, itu menyisipkan komentar (setelah ada pernyataan di telepon, dan berbaris dengan kolom komentar). Ketika suatu daerah dipilih, ia berperilaku seperti comment-region. Ketika tidak ada wilayah aktif, comment-region tidak memasukkan komentar.
jwernerny
Bukan hanya itu, tapi comment-region, tidak seperti comment-dwim (yang mana M-; secara default) memungkinkan Anda secara fleksibel dan paling tidak blokir komentar. Gunakan polos C-u ke unest satu tingkat sarang. (Saya mengikat C-x C-; untuk comment-region. Sebenarnya, saya mengikatnya comment-region-lines dari misc-cmds.el.)
Drew
3

Anda ingin memilih wilayah kode lalu M-;

olleicua
sumber
Jawaban cara emacs terbaik dan sederhana.
Manoel Vilela