2014-09-03 2 views
1

Проблема заключается в том, что я хочу, чтобы Emacs сохранял вкладки, когда я вводил их как вкладки и пробелы, если я ввел их как пробелы. Но редактор заменяет мое вручную типизированное пространство с вкладкой, когда количество мест достигает amonut, который определен в tab-stop-list, то есть, когда я печатаюEmacs заменяет пробелы на вкладки

→func1() { 
    → →some_long_command_name -param1 -param2 \ 
    → →→→→→→→→→→→→→→→→→→→→→→→→-param3 -param4 

(где вкладка    → и пространство ) Emacs делает его

→func1() { 
    → →some_long_command_name -param1 -param2 \ 
    → → → → → → →→→→-param3 -param4 

Что разрушает отступ, который я хотел сохранить, если изменяется длина вкладки.

+0

Emacs не конвертирует пробелы в табуляции, как вы описываете. Либо вы используете какой-то фанковый дополнительный пакет, либо вы делаете что-то еще, чем то, что вы описываете (например, вы повторно отступаете от кода, может быть?). – Stefan

+0

@Stefan теперь я думаю, что может быть ошибкой ebuild-mode. Попробует связаться со своими разработчиками. – tijagi

ответ

1

Мне кажется, что вы после https://www.emacswiki.org/emacs/SmartTabs?

+0

Да. По какой-то причине я думал, что уже установил его. Но это не так. – tijagi

+0

Я никогда не буду работать для shell-mode, хотя; _; https://github.com/jcsalomon/smarttabs/issues/11#issuecomment-10761636 – tijagi

0

Настроить опцию indent-tabs-mode, чтобы указать значение nil. Это останавливает Emacs от преобразования пробелов в отступе для использования символов TAB. SPC символы и TAB символы, которые вы вводите, остаются такими.

Затем вам необходимо либо привязать ключ TAB к self-insert-command, либо использовать C-q TAB, чтобы вставить символ TAB. Это означает, что вы потеряете ключ TAB в качестве команды отступа. Кроме того, вы можете связать какой-либо другой ключ с командой, которая вставляет символ TAB, или же привязать другой ключ, кроме TAB, к команде отступа, которая по умолчанию привязана к TAB.

+0

Я бы не хотел потерять автоматический отступ, я бы хотел избавиться только от того, что Emacs вставляет после. Я думаю, что автоматическое отступы и замена пространств не должны зависеть друг от друга. Я мог бы проследить его до функции '' indent-relative' в 'indent.el', но я не знаю, что elisp должен идти глубже: D – tijagi

Смежные вопросы