Автоматически заменять определенные текстовые строки, когда они набираются в emacs - PullRequest
5 голосов
/ 08 июля 2010

Есть небольшой нюанс, который меня давно беспокоит, а именно, что я часто печатаю #inclued вместо #include. Если это не было очевидно, я много программирую на C и C ++. Эта опечатка разрушила бесчисленные сборки и потребляла время, которое было бы лучше потратить на кофе или серфинг в стеке. Конечно, emacs может быть полезным и исправлять мои ошибки, когда я печатаю (конечно, только в cc-mode). Но как?

Поиск и поиск в стеке не дал ответов.

Ответы [ 5 ]

8 голосов
/ 08 июля 2010

Вы можете использовать это в abbrev-mode : после того, как вы ввели #inclued, выполните C-x a i g include RET, и с тех пор каждый раз, когда вы вводите #inclued, он автоматически изменится на #include. Если вы хотите, чтобы эта аббревиатура была локальной для режима, используйте C-x a i l вместо C-x a i g. Кроме того, вы можете редактировать свои сокращения с M-x edit-abbrevs.

3 голосов
/ 09 июля 2010

Более красивое и глобальное решение, чем аббревиатуры (поскольку вы не можете предсказать все опечатки, которые вы сделаете), заключается в использовании flymake (который поставляется с дистрибутивом emacs).

Flymake проверяет ваш исходный код за кулисами, пока вы все еще вводите свой код в буфер.Он показывает, что не так с вашим кодом (то есть: то, что говорит gcc, неверно).

Запуск gcc в фоновом режиме не требует больше ресурсов ЦП, чем ваша антивирусная программа.Более того, если у вас 2 или более ядер, gcc может воспользоваться преимуществами распараллеливания.Он только проверяет синтаксис, ничего не компилируя.

1 голос
/ 09 июля 2010

если вас интересует что-то немного другое, вы можете записать весь свой маленький кусочек в фрагменты, используя пакет YAsnippet, затем вы можете напечатать что-то вроде #in, нажать TAB, и оно расширится до ... чего угодноты хочешь.

0 голосов
/ 09 июля 2010

Я собирался предположить, что это может быть немного странное заявление для flyspell, но ответ Данлея выглядит лучше.

0 голосов
/ 09 июля 2010

Похоже, flymake - это именно то, что вам нужно. Он запускает компилятор в фоновом режиме и выделяет ошибки при вводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...