Uso o vim há algum tempo e sei que selecionar blocos de texto no modo visual é tão simples quanto SHIFT+ Ve mover a tecla de seta para cima ou para baixo linha por linha até chegar ao final do bloco de texto que eu deseja selecionado.
Minha pergunta é - existe uma maneira mais rápida no modo visual de selecionar um bloco de texto, por exemplo, por SHIFT+ Vseguido de uma especificação do número da linha na qual desejo que a seleção pare? (via, :35
por exemplo, onde 35 é o número da linha que eu quero selecionar - isso obviamente não funciona, minha pergunta é descobrir como se algo semelhante a isso pode ser feito ...)
v%
ouv/pattern
ou algo mais.V35G
selecionará visualmente da linha atual para a linha 35, tambémV10j
ouV10k
selecionará visualmente as próximas 10 linhas ou as anterioresnnoremap <Space> V
. Quando estiver no modo de linha visual, clique com o botão direito do mouse para definir a seleção (pelo menos no Linux é assim). De qualquer forma, mais eficaz do que apenas com o teclado.Respostas:
Além do que os outros disseram, você também pode expandir sua seleção usando pesquisas de padrões.
Por exemplo, v/foovocê selecionará da sua posição atual para a próxima instância de "foo". Se você realmente deseja expandir para a próxima instância de "foo", na linha 35, por exemplo, basta pressionar npara expandir a seleção para a próxima instância e assim por diante.
atualizar
Geralmente não faço isso, mas sei que algumas pessoas usam marcas extensivamente para fazer seleções visuais. Por exemplo, se estou na linha 5 e quero selecionar a linha 35, posso pressionar mapara colocar a marca
a
na linha 5, depois :35para passar para a linha 35. Shift+ vpara entrar no modo visual linha a linha e, finalmente, `apara retornar à marcaa
.fonte
v/foo/e
. Ae
significa "fim" do padrão combinado.v
i
w
. Se você deseja selecionar o espaço não em branco contíguo atual, usev
i
Shift
+w
. A diferença seria quando o cursor estiver aquiMyCla|ss.Method
, o primeiro combo selecionariaMyClass
e o segundo selecionaria a coisa toda.v i w s
permite efetivamente uma operação de "substituição".V35G alcança o que você deseja
fonte
Vim é uma linguagem. Para realmente entender o Vim, você precisa conhecer o idioma. Muitos comandos são verbos, e o vim também possui objetos e preposições.
Isso significa "selecionar a linha atual até e incluindo a linha 100".
Os objetos de texto são onde está a maior parte da energia. Eles introduzem mais objetos com preposições.
Isso significa "selecionar em torno do parágrafo atual", ou seja, selecione o parágrafo atual e a linha em branco a seguir.
Isso significa "selecionar em torno do parágrafo atual e do próximo parágrafo".
Isso significa "vá para o final do parágrafo atual e, em seguida, selecione-o visualmente e o parágrafo anterior".
Entender o Vim como um idioma ajudará você a obter a melhor milhagem possível.
Depois de selecionar para baixo, você pode combinar com outros comandos:
Com o comando acima, você pode selecionar em torno de um parágrafo e excluí-lo. Altere
d
para ay
para copiar ou para ac
para alterar ou para ap
para colar.Depois de entender como todos esses comandos funcionam juntos, você não precisará selecionar nada visualmente. Em vez de selecionar visualmente e excluir um parágrafo, você pode simplesmente excluí-lo com o
dap
comandofonte
v35G
selecionará tudo, desde o cursor até a linha 35.v
coloca você no modo de seleção,35
especifica o número da linha que você desejaG
acessar.Você também pode usar o
v}
que selecionará tudo até o início do próximo parágrafo.fonte
Para selecionar o número de linhas:
shift + v 9j - selecione 10 linhas
fonte
:set rnu
Shift+V n j
ouShift+V n k
Isso seleciona a linha atual e as próximas /
n
linhas anteriores . Eu acho isso muito útil.fonte
v 35 j
texto adicionado para um mínimo de 30 caracteres
fonte
v%
selecionará o bloco inteiro.
Jogue com também:
v}
,vp
,vs
, Etc.Veja a ajuda:
:help text-objects
que lista as diferentes maneiras de selecionar letras, palavras, frases, parágrafos, blocos e assim por diante.
fonte
Objetos de texto: http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
fonte
Você pode pressionar
vi}
para selecionar o bloco entre{}
colchetes onde o cursor está localizado atualmente.Realmente não importa onde você está dentro desse bloco (apenas verifique se você está no mais externo). Além disso, você pode mudar
{
para qualquer coisa que tenha um par como)
ou]
.fonte
Você sempre pode usar apenas números antecedentes para repetir ações:
fonte
simples basta pressionar Shift v line number gg
exemplo: sua linha atual para a linha 41 Basta pressionar Shift v 41 gg
fonte
} significa mover o cursor para o próximo parágrafo. então, use
v}
para selecionar o parágrafo inteiro.fonte
Para selecionar tudo no visual: Digite Esc para garantir que você esteja no modo normal
digite ENTER para ir para o início do arquivo
fonte
gg
no modo normal para ir para a primeira linha também.Pode ser útil saber:
Para selecionar a mesma quantidade de linhas, por exemplo, use
1v
Você deve ter feito algumas modificações para poder usar1v
, em sentido horário ou em linha.Hoje eu vi essa dica incrível daqui :
Você também pode redefinir os limites do bloco visual fazendo o seguinte:
fonte
Eu uso isso com fold no modo recuo:
v abra o modo Visual em qualquer lugar do bloco
zaza toogle duas vezes
fonte