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?

rix
fonte
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.

Xavier T.
fonte
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

Fredrik Pihl
fonte
25

Experimente esta solução de cheatsheet do Vi / Vim para muitos problemas.

Para o modo normal:
0- [zero] até o início da linha, primeira coluna.
$- até o final da linha

curiousMonkey
fonte
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 ).

a8m
fonte
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)
Andriy Drozdyuk
fonte
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
7

Digite "^". E obtenha um bom tutorial "Vi" :)

Skippy Fastol
fonte
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
rashok
fonte
5

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

brian_wang
fonte
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

Sagar Jain
fonte
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