Как добавить/удалить отступ от текущей строки до строки, где найден заданный шаблон?

Как добавить/удалить отступ от текущей строки до строки, где найден заданный шаблон?

Я пытаюсь изменить отступ файла класса в vim так, чтобы:

class ClassName {
    Q_OBJECT                                                                       
    public:                                                                        
    ClassName(int deviceId = 1);                                                 
    ~ClassName();                                                                

    public slots:                                                                  
        void run();                                                                    
        void connectDevice();                                                          
        void disconnectFromDevice();                                                   
};

становится:

class ClassName {
    Q_OBJECT                                                                       
    public:                                                                        
    ClassName(int deviceId = 1);                                                 
    ~ClassName();                                                                

    public slots:                                                                  
    void run();                                                                    
    void connectDevice();                                                          
    void disconnectFromDevice();                                                   
};

Я знал, что могу использовать <<, чтобы удалить один уровень отступа и <3<сделать это на следующих 3 строках, поэтому я попытался набрать <f}<в строке, void run();чтобы удалить один уровень до }, но это не сработало (ничего не произошло). Что не так с этим подходом?

решение1

fищет в текущей строке только символ. Вам нужно использовать команду поиска вперед /, например, </}и возврат каретки.

Если вы хотите избежать повторного отступа строки, в которой находится цель поиска, проще всего использовать визуальный режим: v\}k<(где kпроисходит перемещение строки).

В качестве альтернативы, если вы находитесь на линии открытия {, вы можете использовать движение парных скобок %, <%.

Обратите внимание, что <оператор документирован для работы как [count]<<или <{motion}, хотя <[count]<работает также.

Связанный контент