Я недавно обновил emacs до версии 24.4.1, и кое-что изменилось в отступе новых строк. Когда я нажимаю, enterя ожидаю просто «голый» символ новой строки в точке, где присутствовал курсор, в частности, если я нахожусь в середине строки, эта строка должна быть разбита, и ни один символ не должен быть удален, включая пробелы. К сожалению, это не случай.
Вот пример:
a b
Когда я ставлю курсор сразу после a
и нажимаю, enterя получаю:
a
b
в то время как это должно быть
a
b
Я немного погуглил и возможно это из-за авто-отступа, как это отключить? Я говорю о текстовом или фундаментальном режиме, если это имеет значение.
indentation
newlines
WeSenseASoulInSearchOfAnswers
источник
источник
M-x view-emacs-news
(илиC-h n
). Вы можете прочитать НОВОСТИ для любой предыдущей версии, добавив префикс arg. При просмотре НОВОСТЕЙ и поиске «отступа» первый результат очень похож на ответ Дрю. Просто полезный совет по любым вопросам, связанным с обновлениями.Ответы:
Отключить
electric-indent-mode
:Это работает с любой версией Emacs. Эта досада или блестящая новая функция, в зависимости от вашей точки зрения, была введена по умолчанию в Emacs 24.4.
Смотрите также этот похожий пост на StackOverflow.
(Тем не менее, звучит так, как будто вы говорите обратное и хотите
RET
сделать отступ, но не получаете этот отступ. Что изменилось, так это то, чтоRET
("Enter") теперь отступает автоматически, и вам нужно нажать,C-j
чтобы получить только новую строку с без отступов. Они поменялись местамиRET
иC-j
, по сути, если вы хотитеRET
сделать отступ, то новое поведение по умолчанию должно дать вам то, что вы хотите. В любом случае, режим такойelectric-indent-mode
: включите или выключите, как вам нравится.)источник
Существует возможность вставить перевод строки символ с
C-q C-j
и есть 3 команды , чтобы разделить строку:open-line C-o
,split-line C-M-o
иnewline RET, C-m
вы использовали. Если вы поместите курсор, как вы сказали после,a
и нажмете,C-o
то текущая строка будет прервана после курсора, и каждый символ будет в следующей строке. split-line сохранит позицию столбца, так что перед содержимым будет вставлен дополнительный пробел.Хм, интересно, с
C-M-o
текущей строкой в конце также появляется лишний пробел, так что позицииb
и курсора выстраиваются в линию после изменения.В основном режиме
C-j
изменяет буфер на ваше ожидание на моей машине иC-j
привязывается кelectric-newline-and-maybe-indent
источник