Niedawno zaktualizowałem emacsa do wersji 24.4.1 i coś się zmieniło w wcięciach nowych linii. Kiedy uderzam enter, spodziewam się po prostu „pustej” nowej linii w miejscu, w którym kursor był obecny, w szczególności jeśli jestem na środku linii, linia ta powinna zostać podzielona i żaden znak nie może zostać usunięty, włączając spacje. Niestety tak nie jest.
Oto przykład:
a b
Po umieszczeniu kursora tuż po a
i wciśnięciu enterotrzymuję:
a
b
podczas gdy powinno być
a
b
Trochę googlowałem i prawdopodobnie wynika to z automatycznego wcięcia, jak mogę to wyłączyć? Mówię o trybie tekstowym lub podstawowym, jeśli to ma znaczenie.
indentation
newlines
WeSenseASoulInSearchOfAnswers
źródło
źródło
M-x view-emacs-news
(lubC-h n
). Możesz przeczytać AKTUALNOŚCI dla dowolnej poprzedniej wersji, dodając przedrostek arg. Po przejrzeniu AKTUALNOŚCI i przeprowadzeniu wyszukiwania „wcięcia” pierwszy wynik jest bardzo podobny do odpowiedzi Drew. Tylko przydatna wskazówka dotycząca wszelkich problemów związanych z aktualizacjami.Odpowiedzi:
Wyłącz
electric-indent-mode
:Działa z każdą wersją Emacsa. Ta irytacja lub błyszcząca nowa funkcja, w zależności od twojego punktu widzenia, została wprowadzona jako domyślna w Emacsie 24.4.
Zobacz także ten podobny post na StackOverflow.
(Wydaje się jednak, że mówisz na odwrót i chcesz
RET
wcięcia, ale nie otrzymujesz tego wcięcia. Zmieniło się to, żeRET
(„Enter”) teraz wcina się automatycznie i musisz nacisnąć,C-j
aby uzyskać nowy wiersz z bez wcięć. Zostały zamienioneRET
iC-j
, w efekcie. Jeśli chceszRET
wcięcia, nowe domyślne zachowanie powinno dać ci to, czego chcesz. W każdym razie tryb toelectric-indent-mode
: włącz lub wyłącz, jak chcesz.)źródło
Istnieje możliwość wstawienia nowej linii z char
C-q C-j
i tam są 3 komendy, aby podzielić linię:open-line C-o
,split-line C-M-o
anewline RET, C-m
użyte. Jeśli umieścisz kursor, jak powiedziałeś po,a
i naciśniesz,C-o
bieżąca linia zostanie przerwana po kursorze, a każdy znak będzie w następnej linii. linia podziału zachowa pozycję kolumny, dzięki czemu przed treścią zostanie wstawione dodatkowe puste miejsce.Hmm, ciekawe, z
C-M-o
bieżącą linią również dostaje dodatkowe puste miejsce na końcu, dzięki czemub
pozycje kursora i wyrównują się po zmianie.W trybie podstawowym
C-j
zmienia bufor zgodnie z oczekiwaniami na moim komputerze iC-j
jest do tego zobowiązanyelectric-newline-and-maybe-indent
źródło