¿Cómo agregar/eliminar sangría desde la línea actual hasta la línea donde se encuentra un patrón determinado?

¿Cómo agregar/eliminar sangría desde la línea actual hasta la línea donde se encuentra un patrón determinado?

Estoy intentando cambiar la sangría de un archivo de clase en vim para que:

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

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

se convierte en:

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

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

Sabía que puedo usar << para eliminar un nivel de sangría y <3<hacerlo en las siguientes 3 líneas, así que intenté escribir <f}<mientras estaba en línea void run();para eliminar un nivel hasta }, pero no funciona (no se hace nada). ¿Qué hay de malo en este enfoque?

Respuesta1

fbusca en la línea actual solo un carácter. Debe utilizar el comando de búsqueda hacia adelante /, por ejemplo, </}y el retorno de carro.

Si desea evitar volver a sangrar la línea donde está el objetivo de búsqueda, lo más sencillo es utilizar el modo visual: v\}k<(dónde kestá el movimiento de la alineación).

Alternativamente, si estás en la línea de la apertura {, puedes usar el movimiento de pares coincidentes %,.<%

Tenga en cuenta que está documentado que el <operador funciona como [count]<<o <{motion}, aunque <[count]<también funciona.

información relacionada