comando vi para adicionar linha em branco?

24

No vi, posso usar oou Oadicionar uma linha em branco e entrar no modo de inserção. Mas e se eu quiser permanecer no modo de comando, existe um comando para isso?

No Google, estou vendo sugestões para adicionar coisas ao meu vimrc, mas parece que deve haver uma maneira mais fácil (que sempre funcionará).

Eric Wilson
fonte

Respostas:

25

De acordo com as perguntas frequentes do VIM, você pode usar o :putcomando:

12.15 Como insiro uma linha em branco acima / abaixo da linha atual sem entrar no modo de inserção?

Você pode usar o comando ": put" ex para inserir linhas em branco. Por exemplo, tente

: colocar = ''
: colocar! = ''

Para mais informações, leia

: ajuda: colocar

mas é realmente mais fácil adicionar:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

para o seu .vimrc. Desta forma, você pode pressionar Enterou Shift-Enterem normal modepara inserir uma linha em branco acima ou abaixo da linha atual. Naturalmente substitua <Enter>e <S-Enter>com suas chaves preferidas.

Mr Shunz
fonte
15

Parte do fascínio de usar VIé ter um modo de comando para manipular o texto e um modo de edição para adicionar texto. Isso evita que você precise pressionar CTRL para executar as tarefas.

As outras sugestões podem funcionar - eu não as experimentei -, mas parecem exigir alguns caracteres ou manipular VImuito o ambiente.

Tente usar o[ESC]seguido de um .para cada nova linha que você deseja adicionar ou 5.adicionar 5 linhas. Isso é muito mais rápido e sempre funcionará em qualquer instalação do VI.

Glorytoad
fonte
11
Você pode usar .a repetição, mas você também pode fazer <number>o<esc>, por exemplo:5o<esc>
bollovan
11
Isso certamente funcionaria. Mas eu gosto de ver como o comando realmente afetará o documento antes que eu o faça várias vezes. Não sei dizer quantas vezes o'danexei um novo parágrafo no VI, apenas para descobrir que o parágrafo bonito era na verdade seis linhas cuidadosamente quebradas / quebradas por palavras.
Glorytoad 6/09/11
2

No vim, há também :normal oou :normal O.

Steven Pritchard
fonte
1

Isso adicionará uma linha em branco após a linha atual:

:put _ 

Como alternativa, especifique uma linha no início.

justerman
fonte
0

No Vim 7.3: <number>o<esc>cria apenas uma linha vazia.

Hakim
fonte
Bem, adicionando <esc>você passa novamente do modo de inserção para o modo de comando. Eu acho que ele está procurando uma resposta que não entre no modo de inserção.
10243 Bernhard
Oh! Esqueço de sair do modo de inserção com <esc>. Nesse caso, funcionará. Ele duplicará a linha editada nas seguintes linhas.
Hakim
0

Para inserir uma linha em branco após a linha atual enquanto permanece no modo de comando, use:

: r !echo

Este é o rcomando " ead in a file", mas em vez de atribuir um nome de arquivo, pedimos que leia a saída de um comando shell ( !); esse comando shell echosimplesmente imprime uma linha em branco. Depois que a linha em branco é inserida, você permanece no modo de comando.

Jeff Schaller
fonte
-2

Estou surpreso que ninguém mais tenha mencionado isso:

Use 'r' seguido de 'Enter key' no modo de linha de comando.

Tarde para a festa por 7 anos embora :)

Akhilesh Siddhanti
fonte
11
Exceto que isso o tira do modo de comando e substitui a linha atual por uma em branco.
Jeff Schaller
Não tenho certeza do que @ Jeff está dizendo. Minhas observações sobre esse comando são: (1) ele não funciona se você estiver em uma linha em branco; e (2) caso contrário, ele exclui o caractere sob o cursor.
187 Scott Scott
Eu errei; rde fato, substitui o caractere atual. Ainda leva você ao modo de comando.
Jeff Schaller
Acordado. Esta é uma limitação: deve ser feita em uma linha não vazia + em um espaço em branco antes da linha. Não pensei nisso. Obrigado.
Akhilesh Siddhanti