Ir para o início da linha sem abrir nova linha no VI


231

Por muito tempo, agora eu uso SHIFTOe SHIFT$movo para o início e o fim de uma linha vi.

No entanto, SHIFTOé mais para abrir uma nova linha acima do cursor.

Existe algum comando que apenas leva você ao início de uma linha?


9
Além das respostas abaixo, digite: ajude movimentos da esquerda para a direita no Vim para obter muitas informações.
ngm

um bom livro para o vim: pratique no vim. ^ 0
陈思秀

Respostas:


428

Você pode usar ^ou 0(Zero) no modo normal para ir para o início de uma linha.

^move o cursor para o primeiro caractere não em branco de uma linha
0sempre move o cursor para a "primeira coluna"

Você também pode usar Shiftipara mover e alternar para o modo Inserir.


5
Também Shift + A e Shift + I vai para o fim eo início da linha, respectivamente, e também muda para Insert Model
bibstha

7
Para mim, pressionar ^normalmente não é tão fácil quanto pressionar 0e wconsecutivamente.
DXDXY

33

Um simples 0leva você ao início de uma linha.

:help 0 Para maiores informações



12

Você pode usar 0ou ^para ir para o início da linha.
E pode usar Shift+ Ipara ir para o início e mudar para o modo de edição ( Inserir ).


Sua resposta está correta, mas há uma pequena ressalva. Shift+Iou ^moverá o cursor para o início do texto na linha. Se a linha tiver ntabulações no início, moverá o cursor para n*tabstop + 1a coluna. Enquanto 0move o cursor para a primeira coluna da linha.
Narendra-choudhary

10

Existe outra maneira:

|

Esse é o "pipe" - o símbolo encontrado no backspace no layout ANSI .

O Vim quickref ( :help quickref) descreve como:

N      |      to column N (default: 1)

E as linhas quebradas?

Se você tiver as linhas de quebra automática ativadas 0e |não o levará mais ao início da linha da tela. Nesse caso, use:

g0

Novamente, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)

Agora eu vejo por que isso funciona. Obrigado. Eu estava me perguntando. Eu acho que é melhor do que 0porque |e $está na mesma chave.
WesternGun


6

Mova o cursor para o início ou finalize com o modo de inserção

  • I - Move o cursor para o primeiro caractere que não está em branco na linha atual e ativa o modo de inserção.
  • A - Move o cursor para o último caractere na linha atual e ativa o modo de inserção.

Aqui Ié equivalente a ^+ i. Da mesma forma Aé equivalente a $+ a.

Apenas movendo o cursor para o início ou o fim

  • ^ - Move o cursor para o primeiro caractere que não está em branco na linha atual
  • 0 - Move o cursor para o primeiro caractere na linha atual
  • $ - Move o cursor para o último caractere na linha atual

5

Acabei de encontrar 0 (zero) e shift + 0 funciona no vim.


5
shift+0desse ), que é próxima frase
Mihai

Shift+0é melhor, ^mostra o personagem e isso é chato. Graças
calbertts

1

0 Leva você ao início da linha

Shift 0 Leva você até o fim da linha


Shift-0 ( ')') não levá-lo para o início da linha
Boris Churzin

@Devenv: Isso é verdade! 0 will
Sagar Jain

1
Shift-0 ( ")") é "frase para a frente" e não "fim da linha" (que é o que eu quis dizer)
Boris Churzin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.