Как заставить Emacs сбросить отступ?
Я хочу, чтобы emacs автоматически сбрасывал свой уровень отступа на 0 в одной конкретной точке файла.
Например: поскольку у меня есть пространства имен nested-nested-nested-.., в файлах C++ я бы не хотел делать отступы для всего тела внутри пространств имен.
#include <vector>
namespace qw {
namespace impl {
using std::vector;
class index_impl {
vector<string> entries;
public:
void add(const string &normalized, const string& original);
string getBestMatch(const string& normalized) const;
};
} // namespace impl_multimap
} // namespace qw
Это, конечно, полезно только в тех случаях, когда внутри вложенных пространств имен существует в основном один класс для реализации. В заголовочных файлах это может привести к путанице. Поэтому я думаю, что лучшим решением было бы иметь специальный комментарий или что-то в этом роде.
#include <vector>
namespace qw {
namespace impl {
// -*- indent: 0 -*-
using std::vector;
...
Любые другие идеи тоже подойдут.
1 ответ
Первоначальный источник.
Пожалуйста, поместите эту строку в ваш файл Emacs:
(c-set-offset 'substatement-open 0)
Детальный метод:
Перейти к строке, которую вы хотите сделать отступ
Пожалуйста, введите C C CO (не ноль) и нажмите Enter
Теперь введите "0" и нажмите Enter, чтобы не было лишних отступов.
Пожалуйста, наберите Tab, чтобы заново сделать отступ
Будущее "{" будет иметь правильную настройку вкладки, пока вы не перезапустите emacs.
Кроме того, вы можете поместить это в ваш файл Emacs:
(c-set-offset 'SYNTACTIC-SYMBOL OFFSET)
чтобы увидеть код LISP.
Научитесь форматировать исходный код C++ вне emacs здесь.