Ao "mover um pedaço de texto para um novo arquivo", presumo que você queira recortar esse pedaço de texto do arquivo atual e criar um novo arquivo contendo apenas esse texto.
Vários exemplos:
:1,1 w new_file
para criar um novo arquivo contendo apenas o texto da linha número 1
:5,50 w newfile
para criar um novo arquivo contendo o texto da linha 5 à linha 50
:'a,'b w newfile
para criar um novo arquivo contendo o texto de marca a
para marcab
- defina suas marcas usando mae mbonde quiser
O texto acima copia apenas o texto e cria um novo arquivo contendo esse texto. Você precisará excluir posteriormente.
Isso pode ser feito usando o mesmo intervalo e o d
comando:
:5,50 d
excluir o texto da linha 5 para a linha 50
:'a,'b d
para excluir o texto de marca a
para marcab
Ou usando ddpara o caso de linha única.
Se você selecionar o texto usando o modo visual e pressionar :
enquanto o texto estiver selecionado, verá o seguinte na linha de comando:
:'<,'>
O que indica o texto selecionado. Você pode expandir o comando para:
:'<,'>w >> old_file
O qual anexará o texto a um arquivo existente. Em seguida, exclua como acima.
Um forro:
:2,3 d | new +put! "
O colapso:
:2,3 d
- exclua as linhas 2 a 3
|
- tecnicamente, isso redireciona a saída do primeiro comando para o segundo comando, mas como o primeiro comando não gera nada, estamos apenas encadeando os comandos
new
- abre um novo buffer
+put! "
- coloque o conteúdo do registrador sem nome ( "
) no buffer
- O bang (
!
) existe para que o conteúdo seja colocado antes da linha atual. Isso causa uma linha vazia no final do arquivo. Sem ele, há uma linha vazia na parte superior do arquivo.