Substitua a linha inteira no vim

0

Então eu tenho o seguinte trecho de texto no meu arquivo. Eu estou usando o vim para editá-lo.

Internal Problem Description
----------------------------
!!! Please enter the internal description of the problem.

Então, para preencher a descrição do problema eu vou para a linha que começa com !!! e, em seguida, primeiro fazer um dd e depois pressione I para ir para o modo de inserção. Então eu começo a digitar o texto para a descrição do problema.

Existe uma maneira melhor de conseguir isso? Algo como substituir uma linha inteira no vim com um único comando.

Geek
fonte
1
Talvez stackoverflow.com/questions/8296473/… é útil: pressionar 'C' excluirá o restante da linha e entrará no modo de inserção
brm

Respostas:

5
  1. Salte para a linha que começa com a franja com algo como:

    /!!<CR>
    
  2. Entre no modo de inserção com:

    S
    

    ou

    cc
    

Vejo :help S.

romainl
fonte
O que é <CR>?
Geek
A chave de entrada. Vejo :help key-notation.
romainl
2

o S comando fará isso. Mas você também deve olhar para um solução de trecho , o que permite vários marcadores e salta automaticamente para eles.

trechos são como o built-in :abbreviate em esteróides, geralmente com inserções de parâmetros, espelhamento e várias paradas dentro deles. Um dos primeiros, muito famosos (e ainda amplamente utilizados) plugins Vim é snipMate (inspirado pelo TextMate editor); infelizmente, não é mais mantido; embora haja um garfo . Uma alternativa moderna (que requer o Python) é UltiSnips . Há mais, veja esta lista na Wiki do Vim Tips .

Ingo Karkat
fonte
o que S significa? Também o que você quer dizer com ": abreviar em esteróides". Você pode por favor me dar algum contexto?
Geek
É um nome de comando, provavelmente um mnemônico para S substituto. Você aparentemente usa arquivos de fragmentos que você :read no buffer, mas para pequenos fragmentos de texto como o seu, definindo :abb as revogações diretamente no Vim também funcionariam. Os trechos são ainda mais poderosos, como descrevi.
Ingo Karkat