Emacs: ввод команд, как в gedit


В gedit можно определить так называемые "сниппеты"для более простого ввода.

Например, есть фрагмент while. Это означает: Если вы набираете while -> (-> расшифровывается как tab key). И gedit автоматически преобразует его в следующее (включая правильный отступ):

while (condition){

}

В vim (совместно с latex-suite) я увидел следующее: Если вы набираете (, vim вставляет только (. Если вы печатаете ( во второй раз vim автоматически преобразует его в left( right).

Я нашел abbrev-mode, но этот режим не помещает курсор должным образом (т. е. между скобками или внутри цикла while).

Мне удалось создать пользовательские привязки клавиш emacs / макросы, которые делают то же самое (без необходимости нажимать клавишу tab), поэтому я знаю, что это возможно.

Однако, есть ли уже и пакет, где вы можете определить такие "сниппеты" без особых усилий? Или есть даже какие-то серьезные причины не использовать такие вещи?

3 5

3 ответа:

См yasnippet. Он предоставляет фрагменты для большинства основных языков, и легко добавлять новые или изменять старые.

Да, ясниппет, вероятно, путь. Но убедитесь, что вы изучили основной режим, который вы используете для редактирования - когда пишете в LaTeX, изучите auctex. Основные режимы могут содержать функциональность, которая делает некоторые фрагменты бессмысленными, и делать то же самое еще лучше. Таким образом, вместо использования начала/конца фрагмента в буфер, латекс, попробовать С-С С-Е в auctex выступает. Etc:)

Не забудьте аббревиатуру-mode.