Jak całkowicie wyłączyć wszystkie automatyczne wcięcia w Emacsie? Muszę go wyłączyć przynajmniej w trybie podstawowym, ale nie przeszkadza mi to, że jest wyłączony globalnie dla bieżącej sesji.
Przeczytaj resztę tego pytania przed zadeklarowaniem duplikatu. Wszystkie pozostałe odpowiedzi, które znalazłem, dotyczą znacznie bardziej ukierunkowanego wyłączenia wcięcia. Naprawdę chcę całkowicie wyłączyć wszystkie automatyczne wcięcia dla całej sesji.
Ustawienie electric-layout-mode
na nil
nie działa.
Detale
Czasami lubię komponować duże wiadomości Git commit w moim edytorze tekstowym ASCII systemu Windows. Wiadomości te często zawierają listy wypunktowane, bloki kodu lub inne rzeczy, w których dokładne formatowanie w moim dokumencie źródłowym ma znaczenie. Moja baza kodów znajduje się w systemie Linux i łączę się z urządzeniem przy użyciu tekstowego klienta SSH. Kiedy Git wprowadza Emacsa w celu edycji wiadomości zatwierdzenia, chcę móc skopiować źródłową wiadomość zatwierdzenia do schowka Windows, a następnie wkleić ją za pomocą poleceń wklejania systemu Windows. Z perspektywy Emacsa piszę to, co znaleziono w pliku tekstowym Windows. Niestety, kiedy Emacs widzi linie wcięcia, dodaje własne automatyczne wcięcie, więc otrzymuję ten ogromny trójkąt białych znaków wzdłuż lewej krawędzi bufora.
Używam GNU Emacs 24.3.1.
Obejście
Moje obecne obejście polega na przeniesieniu pliku tekstowego Windows do systemu plików zamontowanego przez mojego hosta Linux, załadowanie pliku do Emacsa, a następnie użycie kill i yank, aby przenieść zawartość. To jest trochę niezgrabne.
Przykład
Oto przykładowy blok tekstu:
a
- b
c
d
Oto jak to wygląda, kiedy wklejam to do Emacsa-under-ssh przez MSWin paste:
a
- b
c
d
Jeśli nacisnę C-h l
po zrobieniu pasty, oto co widzę. Zauważ, że znaki nowej linii są wprowadzane za pomocą C-j
, a nie RET
.
a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j
SPC SPC SPC SPC d C-j C-h l
:set paste
? To w zasadzie mówi „nie dotykaj wklejonego tekstu w jakikolwiek sposób”. Który obejmuje również automatyczne wcięcie.
hack-local-variables-hook
- aby zasadniczo cofnąć to, co inne główne tryby ustawiły jako część ich standardowa inicjalizacja.fundamental-mode
jest tylko małą funkcją w środkusimple.el
- tj(kill-all-local-variables) (run-mode-hooks)
.M-x find-function RET fundamental-mode RET
- możesz modyfikować / tworzyć własne według potrzeb; jeśli jednak zmienisz nazwę, niektóre funkcje nie będą z niej korzystać - rozważ więc zachowanie tej samej nazwy.