Як змусити Emacs скинути відступ?


0

Я хочу, щоб emacs автоматично скидав рівень відступу до 0 в одній конкретній точці файлу.

Наприклад: тому що у мене є вкладені-вкладені- ..іменні простори, у 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;
...

Будь-які інші ідеї були б добре.

Відповіді:


0

Оригінал Джерело .

Введіть цей рядок у файл emacs:

(c-set-offset 'substatement-open 0)

Детальний метод:

  1. Перейдіть до рядка, який потрібно відступити

  2. Введіть C-C C-O (не нуль) і натисніть Enter

  3. Тепер введіть "0" і натисніть клавішу Enter без додаткового відступу

  4. Введіть Tab, щоб відступити рядок

  5. Майбутнє "{" буде мати правильну вкладку, доки ви не перезапустите emacs.

Крім того, ви можете помістити це у файл emacs:

(c-set-offset 'SYNTACTIC-SYMBOL OFFSET)

щоб побачити код lisp.

Навчіться форматувати джерело C ++ за межами emacs тут .


Це дозволить переключити відступ до 0, завжди, чи не так? Це не те, що мені потрібно. Я більше думаю про ручне налаштування в рідкісних випадках. астиль може допомогти, так, але я хочу залишитися всередині emacs.
towi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.