如何新增/刪除從目前行到找到給定模式的行的縮排?

如何新增/刪除從目前行到找到給定模式的行的縮排?

我正在嘗試更改 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<(where kis line-up moving)。

或者,如果您位於開頭行{,則可以使用匹配括號運動%, <%

請注意,該<運算子被記錄為作為[count]<<或工作<{motion},儘管<[count]<也可以工作。

相關內容