vi: move uma linha por 4 bytes

4

Eu quero mover uma linha por 4 bytes usando o editor vi. Qual comando devo usar?

Eu tentei "> >" e ele se move, mas se move por 8 bytes.

    
por user1050619 04.05.2014 / 21:14

3 respostas

10

Padrão shiftwidth em vi é 8 espaços, de :help shiftwidth :

'shiftwidth' 'sw'       number  (default 8)
                        local to buffer
        Number of spaces to use for each step of (auto)indent.  Used for
        'cindent', >>, <<, etc.

Portanto, você deve definir shiftwidth para 4 :

set shiftwidth=4

Adicione a linha acima ao arquivo .exrc para torná-lo persistente.

    
por 04.05.2014 / 21:34
6

No modo normal, digite 4I , em seguida, pressione espaço e, em seguida, escape .

Isto irá inserir 4 espaços no início da linha e mover a linha para a direita. Eu suponho que isso é o que você quer, desde que você mencionou que > > quase funciona para você.

    
por 04.05.2014 / 22:00
0

Quando você estiver familiarizado com o sed, você também pode tentar comandos semelhantes ao sed. Suponha que você acabou de adicionar uma instrução if e queira recuar as linhas até a próxima}. Então tente

:.,/}/-1 s/^/    /
    
por 04.05.2014 / 23:14

Tags