현재 줄부터 주어진 패턴이 발견된 줄까지 들여쓰기를 추가/제거하는 방법은 무엇입니까?

현재 줄부터 주어진 패턴이 발견된 줄까지 들여쓰기를 추가/제거하는 방법은 무엇입니까?

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

나는 <<를 사용하여 하나의 들여쓰기 수준을 제거하고 다음 3줄에서 이를 수행할 수 있다는 것을 알았으므로 줄을 서서 }까지 한 수준을 제거하기 위해 <3<입력을 시도했지만 작동하지 않습니다(아무 작업도 수행되지 않음). 이 접근 방식에 어떤 문제가 있습니까?<f}<void run();

답변1

f현재 행에서 문자만 검색합니다. 앞으로 검색 명령 /(예: </}캐리지 리턴) 을 사용해야 합니다 .

검색 대상이 있는 줄을 다시 들여쓰지 않으려면 가장 간단한 방법은 시각적 모드를 사용하는 것입니다. v\}k<( k라인업 이동은 어디에 있습니까?)

또는 오프닝 라인에 있는 경우 {일치하는 괄호 이동을 사용할 수 있습니다 %.<%

연산자 는 또는 <로 작동하는 것으로 문서화되어 있지만 작동합니다.[count]<<<{motion}<[count]<

관련 정보