Сделать клавишу Tab в функции Emacs похожей на Notepad ++ - PullRequest
0 голосов
/ 29 ноября 2018

Я пытался найти способ заставить мой Emacs функционировать аналогично notepad ++ при использовании табуляции.В частности, я хочу, чтобы вкладка для ВСЕГДА вставляла пробелы при нажатии, независимо от того, где я нахожусь в файле.

В настоящее время я считаю, что вкладки работают только в определенных ситуациях, и даже тогда количество вставленного пространства не согласовано.

В идеале, нажатие на вкладку будет работать аналогично notepad ++, где он тоже останавливается.Например, если вы нажмете на вкладку в пробел 0, он будет вводить 4 пробела.Если вы находитесь в пробеле 1, для перехода к следующей вкладке будет введено только 3 пробела.

Я не знаю, связана ли проблема со мной при использовании verilog-mode.el, но я пробовал несколько разных комбинаций и не могу заставить его работать.

Я загрузил здесь свои настройки Emacs на случай, если это поможет:

https://github.com/TreverWagenhals/TreverWagenhals/tree/master/Emacs

Извините, если это выглядит как дублирующий вопрос, но я пробовал много предложенийв интернете и ничего не сделало то, что я хочу.

1 Ответ

0 голосов
/ 29 ноября 2018

По умолчанию нажатие TAB делает Emacs отступом текущей строки.Таким образом, он пытается выяснить, насколько далеко должна быть отступа строка (на основе окружающих линий и любых настроек отступа, зависящих от режима), а затем добавляет или удаляет вкладки и / или пробелы, чтобы добраться до нужного уровня отступа.

Если вы иногда находите такое поведение полезным, вы можете установить переменную tab-always-indent в nil.Это делает поведение TAB зависимым от того, где находится точка линии.Если точка находится в начале строки, она выравнивает строку, как описано выше, и в противном случае вставляет табуляцию или пробелы для перехода к следующей остановке табуляции.(Он использует табуляции, если indent-tabs-mode равен t, по умолчанию, и пробелы, если он nil.)

Если вам вообще не нужен режим отступа, вы можете перепривязать TAB ключ к tab-to-tab-stop, который обычно связан с M-i:

(global-set-key (kbd "TAB") 'tab-to-tab-stop)
...