現在の行から特定のパターンが見つかった行までインデントを追加/削除するにはどうすればよいですか?

現在の行から特定のパターンが見つかった行までインデントを追加/削除するにはどうすればよいですか?

私は 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();                                                   
};

<< を使用してインデント レベルを 1 つ削除し、<3<次の 3 行でそれを実行できることはわかっているので、 } まで 1 レベル削除するため<f}<に行内で入力してみましたvoid run();が、機能しません (何も行われません)。このアプローチの何が問題なのでしょうか?

答え1

f現在の行で文字のみを検索します。前方検索コマンド/(例:</}と復帰) を使用する必要があります。

検索対象の行を再インデントすることを避けたい場合は、ビジュアル モードを使用するのが最も簡単です: v\}k<(k行の移動はここで行います)。

あるいは、開始行上にいる場合は{、対応する括弧の移動 、 を使用でき%ます<%

演算子はまたは<として動作することが文書化されていますが、も動作することに注意してください。[count]<<<{motion}<[count]<

関連情報