
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
f
durchsucht 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 k
sich 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.