
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
f
busca 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 k
está 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.