Як коментувати блок коду в Emacs?


12

Як у коментарях Emacs коментувати блок тексту, тобто як відступити блок тексту праворуч nсимволами пробілу та поставити обрану послідовність символів, скажімо ##, на початку кожного рядка?

Оригінал

foo
bar foobar
   foo bar

Бажано:

# foo
# bar foobar
#    foo bar
  • Мені потрібен метод, який не заважає режиму CUA.
  • comment-dwin не дозволяє мені вибирати довільну послідовність символів.

Відповіді:


15

Один із способів - це використання string-rectangle( C-x r t).

Позначте блок, потім зателефонуйте string-rectangleта дайте ##як рядок для вставки.


3
Ось більш конкретні кроки: 1) переміщення курсору до початку 2) C-M-@3) переміщення курсору до кінця 4) C-x r t5) введення послідовності символів префікса, наприклад ## , натиснітьENT
qazwsx

чи можна робити і зворотне?
mustISignUp

Ви можете вибрати прямокутник і видалити йогоC-x R K
Juancho

10

Залежно від того, в якому режимі ви працюєте (наприклад, режим CC, Lisp Mode), ви можете вибрати область, а потім скористатися командою comment-region(зазвичай прив’язаною до Cc Cc. Якщо все встановлено правильно, слід використовувати відповідні символи коментарів для типу файлу ви редагуєте


9
Чим це відрізняється від M-;?
qazwsx

4
@duperuser M-;- більш загальна команда для коментування. Коли немає активного регіону, він вставляє коментар (після будь-яких тверджень у рядку та вишикується колоною коментарів). Коли вибрано регіон, він поводиться так comment-region. Коли немає активного регіону, comment-regionне вставляйте коментар.
jwernerny

Мало того, але comment-region, на відміну від comment-dwim(що M-;за замовчуванням) дозволяє вам гнучко вкладатись і непристойно блокувати коментарі. Використовуйте звичайну, C-uщоб зняти один рівень гніздування. (Я прив'язувати C-x C-;до comment-regionдійсності, я пов'язую його. comment-region-linesЗ misc-cmds.el.)
Drew

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.