Jak skomentować blok kodu w Emacsie?


12

W Emacsie, jak komentować blok tekstu, tj. Jak wciąć blok tekstu w prawo za pomocą nbiałych znaków i umieścić wybraną sekwencję znaków, powiedzmy ##, na początku każdej linii?

Oryginalny

foo
bar foobar
   foo bar

Pożądany:

# foo
# bar foobar
#    foo bar
  • Potrzebuję metody, która nie zakłóca trybu CUA.
  • comment-dwin nie pozwala mi wybrać dowolnej sekwencji znaków.

Odpowiedzi:


15

Jednym ze sposobów jest użycie string-rectangle( C-x r t).

Zaznacz blok, a następnie wywołaj string-rectanglei podaj ##jako ciąg do wstawienia.


3
Oto bardziej konkretne kroki: 1) przesuń kursor na początek 2) C-M-@3) przesuń kursor na koniec 4) C-x r t5) wpisz ciąg znaków prefiksu, na przykład ## naciśnijENT
qazwsx

czy można również wykonać odwrotność?
mustISignUp

Możesz wybrać prostokąt i usunąć go za pomocąC-x R K
Juancho

10

W zależności od uruchomionego trybu (np. Tryb CC, Tryb Lisp) możesz wybrać region, a następnie użyć polecenia comment-region(zwykle powiązanego z DW DW. Jeśli wszystko jest ustawione poprawnie, należy użyć odpowiednich znaków komentarza dla typu pliku edytujesz.


9
Czym to się różni M-;?
qazwsx,

4
@duperuser M-;to bardziej ogólne polecenie komentowania. Gdy nie ma aktywnego regionu, wstawia komentarz (po jakichkolwiek instrukcjach w wierszu i wyrównany z kolumną komentarza). Po wybraniu regionu zachowuje się jak comment-region. Gdy nie ma aktywnego regionu, comment-regionnie wstawia komentarza.
jwernerny

Nie tylko to, ale comment-regionw przeciwieństwie do comment-dwim(co jest M-;domyślnie) pozwala elastycznie zagnieżdżać i unnest blokować komentarze. Użyj zwykłego, C-uaby unnest jeden poziom zagnieżdżenia. (Wiążę C-x C-;z comment-region. Właściwie to wiążę comment-region-linesz misc-cmds.el.)
Drew

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.