2012-03-16 8 views
3

Есть простой примитивный способ отступа для Emacs, что бы сделать следующее:Примитивный отступы в Emacs

  1. Когда я перейти на новую строку (Hit Enter), копировать все, что белое пространство, используемое для отступа выше строки

  2. Когда я нажимаю Tab, вставляем отступы, которые можно настроить (пробелы/вкладки) прямо там, где я нажал Tab. Просто вставьте пробелы/вкладку, НЕ ДЕЛАЙТЕ «умную» -интексацию.

  3. [необязательно] При нажатии Сдвиг + Tab, удалить один символ отступа от начала текущей строки

  4. [необязательно] Do отступа/Unindent выбранных блоков.

Вопрос в следующем: существует ли такой режим? Если, как его зовут?

Я не хочу начинать обсуждение «Зачем мне такое поведение?» и мне не нужны «умные» альтернативы по причинам, выходящим за рамки этой темы.

Я просто хочу простой дурацкий режим ...

Emacs был там в течение веков. Кто-то где-то в какой-то момент, должно быть, задал этот вопрос и, вероятно, написал для него режим.

Я прошел через множество тем, связанных с отступами, там ничего нет. Все просто настаивают на том, «вы должны повиноваться Emacs, а не Emacs должны подчиняться вам».

+0

хмм .. по умолчанию Emacs должен сделать свой запрос 1 и 2 – kindahero

+0

@Patrick ОП «отступа при нажатии вкладки» не автоматический отступ. поэтому emacs по умолчанию не отступает, нажимая 'RET' – kindahero

+0

@kindahero: О, подождите, я неправильно понял. Я снимаю свои предыдущие комментарии. – Patrick

ответ

1

1. Хотя в fundamental-mode, вы можете перепривязывают RET в newline-and-indent

(local-set-key (kbd "RET") 'newline-and-indent) 

2. Чтобы TAB вставки табуляции/пробелы вместо отступа, вы должны настроить переменную tab-always-indent :

(setq tab-always-indent nil) 

Чтобы выбрать между отступом табуляции и пробела, настройте переменную indent-tabs-mode.

(setq indent-tabs-mode t) ;; for tab-based indentation 
(setq indent-tabs-mode nil) ;; for space-based indentation 

Я не знаю ни одного стандартного способа ведения точек 3. и 4., но оно не должно быть слишком трудно разработать небольшие пользовательские функции, чтобы сделать это.

+0

1) Это то же самое, что и C-j. Он не сохраняет много желаемых пробельных символов, он делает отступы. – TEHEK

+0

2) '(setq tab-always-indent nil)' на самом деле действительно приятно :) Спасибо! – TEHEK

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