Wie kann ich von der aktuellen Zeile bis zu der Zeile, in der ein bestimmtes Muster gefunden wird, eine Einrückung hinzufügen/entfernen?

Wie kann ich von der aktuellen Zeile bis zu der Zeile, in der ein bestimmtes Muster gefunden wird, eine Einrückung hinzufügen/entfernen?

Ich versuche, die Einrückung einer Klassendatei in vim so zu ändern, dass:

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

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

wird:

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

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

Ich weiß, dass ich mit << eine Einrückungsebene entfernen und <3<dies in den nächsten 3 Zeilen tun kann. Ich habe also versucht, <f}<in der Zeile void run();eine Ebene bis zum } zu entfernen, aber es funktioniert nicht (es wird nichts getan). Was ist an diesem Ansatz falsch?

Antwort1

fdurchsucht die aktuelle Zeile nur nach einem Zeichen. Sie müssen den Vorwärtssuchbefehl verwenden /, z. B. </}und die Zeilenschaltung.

Wenn Sie vermeiden möchten, die Zeile mit dem Suchziel erneut einzurücken, verwenden Sie am einfachsten den visuellen Modus: v\}k<(wobei ksich die Zeilenbewegung befindet).

Alternativ können Sie, wenn Sie sich auf der Eröffnungszeile befinden {, die Klammern-Bewegung %, verwenden <%.

Beachten Sie, dass der <Operator laut Dokumentation als [count]<<oder funktioniert <{motion}, obwohl <[count]<auch funktioniert.

verwandte Informationen