Як відключити автоматичне відступ нових рядків?


37

Я нещодавно оновив emacs до версії 24.4.1, і щось змінилося в відступі нових рядків. Коли я потрапляю, enterя очікую, що просто "голий" новий символ рядка в точці, де був курсор, зокрема, якщо я в середині рядка, цей рядок повинен бути розділений, і жоден символ не буде видалений, включаючи пробіли. На жаль, це не так.

Ось приклад:

a b

Коли я кладу курсор відразу після aі натискаю, enterя отримую:

a
b

поки має бути

a
 b

Я трохи погуглився і, ймовірно, це пов’язано з автоматичним відступом, як я можу відключити це? Я говорю про текст або фундаментальний режим, якщо це має значення.


7
Для нащадків я маю додати коментар до цього. Багато проблем із останнім оновленням можна вирішити, прочитавши НОВИНИ з M-x view-emacs-news(або C-h n). Ви можете прочитати НОВИНИ для будь-якої попередньої версії, додавши аргумент префікса. Переглядаючи НОВОСТІ та виконуючи пошук "відступу", перший результат надзвичайно схожий на відповідь Дрю. Просто корисна порада щодо будь-яких питань, пов’язаних із оновленнями.
няня

Відповіді:


49

Вимкнути electric-indent-mode:

(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))

Це працює з будь-якою версією Emacs. Ця роздратованість або блискуча нова функція, залежно від вашої точки зору, була введена в Emacs 24.4 за замовчуванням.

Дивіться також цей подібний пост у StackOverflow.

(Однак, це здається, що ви говорите зворотне , і ви хочете RET зробити відступ, але не отримуєте цього відступу. Що змінилося, це те, що RET("Enter") тепер відступає автоматично, і вам потрібно натиснути, C-jщоб отримати лише новий рядок з немає відступів. Вони помінялися місцями RETі C-j, по суті, якщо ви хочете RETвідступити, то нова поведінка за замовчуванням повинна дати вам те, що ви хочете. У будь-якому випадку режим такий electric-indent-mode: увімкніть або вимкніть, як вам подобається.)


1

Існує можливість вставити новий рядок символ з C-q C-jі є 3 команди , щоб розділити рядок: open-line C-o, split-line C-M-oі newline RET, C-mви використовували. Якщо розташувати курсор так, як ви говорили після, aі натисніть C-oпоточний рядок, після курсору буде порушено, і кожен знак буде в наступному рядку. розділена лінія збереже позицію стовпця, щоб перед вмістом вставити додатковий пробіл.

Хм, цікаво, що з C-M-oпоточним рядком також в кінцевому підсумку виходить додаткове порожнє, так що позиції bта курсор вирівнюються після зміни.

У фундаментальному режимі C-j змінює буфер на ваше очікування на моїй машині, і C-jзобов'язанийelectric-newline-and-maybe-indent

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