Eu tentei seguir o seguinte:
Como excluir o texto selecionado no editor VI
mas
5dd
dá
E492: Não é um comando do editor: 5dd
Eu então tentei:
5d
O que exclui apenas uma única linha. Como posso excluir várias linhas?
Eu tentei seguir o seguinte:
Como excluir o texto selecionado no editor VI
mas
5dd
dá
E492: Não é um comando do editor: 5dd
Eu então tentei:
5d
O que exclui apenas uma única linha. Como posso excluir várias linhas?
Respostas:
Parece que você está inserindo os comandos no modo de comando (também conhecido como "modo Ex"). Nesse contexto
:5d
, removeria a linha número 5, nada mais. Para5dd
funcionar como pretendido - isto é, remova cinco linhas consequentes começando no cursor - digite-o no modo normal e não prefixe os comandos:
.fonte
Acho isso mais fácil
/superuser/170795/how-can-i-select-and-delete-lines-of-text-in-vi
fonte
Você pode excluir várias linhas (intervalo) se souber os números de linha:
Nota: d significa exclusão
Onde,
start_line_no é a linha inicial que você não deseja excluir e end_line_no é a linha final que você não deseja excluir. As linhas entre o início e o fim, incluindo o início e o fim, serão excluídas.
Por exemplo:
As linhas entre 45 e 101, incluindo 45 e 101, serão excluídas.
fonte
$
indicar a última linha do arquivo. Então:45,$d
, excluiria todas as linhas de 45 até o final./<\/div>/
:.,[end_line_no]d
Comandos listados para uso no modo normal (prefixo com :para modo de comando).
Testado no Vim.
Por valor da linha:
Por números de linha:
Backwards range given, OK to swap (y/n)?
fonte
Se você preferir um método de modo não visual e reconhecer os números das linhas, gostaria de sugerir uma outra maneira direta.
Exemplo
Meu método sugere que você digite um comando abaixo no modo de comando:
Diz:
Observe que
vim
você pode usargg
no lugar deG
.Compare com a resposta da @Bonnie Varghese, que é:
O comando acima de sua resposta requer digitação 9 vezes enter, incluindo , onde minha resposta requer digitação de 8 a 10 vezes. Assim, uma velocidade do meu método é comparável.
Pessoalmente, eu mesmo prefiro
45Gd101G
mais:45,101d
porque eu gosto de pau para a sintaxe de comando do vi, neste caso é:fonte
d5d "corta" cinco linhas
Eu normalmente apenas jogo o número no meio como:
d7l = excluir 7 letras
fonte
Pressione a Esctecla para garantir que você não esteja no modo de edição. Coloque o cursor na primeira linha a ser excluída. Enter
:5dd
. A linha atual e as próximas quatro linhas devem ser excluídas.Como alternativa, se você tiver a numeração de linha ativada ...
Pressione a Esctecla para garantir que você não esteja no modo de edição. Digite
:#,#d
onde '#' significa os números das linhas inicial e final a serem excluídos.fonte
Digite (para linhas numeradas).
:set number
fonte
Se você deseja excluir um intervalo APÓS um acionador de linha específico, você pode usar algo como isto
Isso exclui 11 linhas (inclusive) após cada encontro de
^TMPDIR
.fonte
é dxd, não ddx
se você deseja excluir 5 linhas, cursor para o início da primeira linha a ser excluída e d5d
fonte
Para excluir todas as linhas, use - ESC gg dG Para excluir algumas linhas, digamos 5 e use ESC 5dd
fonte
Isso pode ser feito da seguinte maneira ..
fonte