如何从当前行到找到给定模式的行添加/删除缩进?

如何从当前行到找到给定模式的行添加/删除缩进?

我正在尝试更改 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]<也可以工作。

相关内容