Como faço para mover para o fim da linha no vim?
-
01-07-2019 - |
Pergunta
Eu sei como geralmente se deslocar no modo de comando, especificamente, saltando para linhas, etc. Mas o que é o comando para ir para o fim da linha que eu estou atualmente em?
Solução
Apenas o $ (cifrão) chave. Você pode usar A para mover para o fim da linha e alternar para o modo (Append) editando. Para saltar o último caractere não-branco, você pode pressionar g então _ chaves.
O oposto de A é I (modo de inserção no início da linha), como um aparte. Pressionando apenas o ^ irá colocar o cursor no início da linha.
Outras dicas
Como muitas pessoas disseram:
- $ deixa no fim da linha
mas também:
- ^ ou _ deixa no primeiro caractere não-espaço em branco na linha, e
- 0 (zero) deixa no início da linha incl. espaços em branco
- $ move-se para o último caractere na linha.
-
g _ vai para o último caractere não-espaço em branco.
-
g $ vai para o fim da linha de tela (quando uma linha de tampão está envolvido em várias linhas de tela)
A questão principal - o fim da linha
$ vai para o fim da linha, permanece no modo de comando
A vai para o fim da linha, comuta para o modo de inserir
Por outro lado - o início da linha (tecnicamente o primeiro não espaços em branco- personagem)
^ vai para o início da linha, permanece no modo de comando
eu (i maiúsculo) vai para o início de linha, comuta para o modo de inserir
Além disso - o início da linha (tecnicamente a primeira coluna independentemente do espaços em branco )
0 (zero) vai para o início da linha, permanece no modo de comando
0i (zero seguido por letras minúsculas i) passa o início de linha, comuta para o modo de inserir
Para aqueles começando a aprender vi, aqui é uma boa introdução ao vi listando lado a lado vi comandos para o movimento do cursor do Windows editor GUI típico e teclas de atalho.
Se seus envoltórios de linha atuais ao redor da tela visível para a próxima linha, você pode usar g $ para chegar ao fim do tela linha.
O sinal de dólar: $
A vantagem da chave 'End' é ele funciona em ambos normal e inserção modos.
'$' funciona em modo de comando / normal apenas mas também funciona no editor vi clássico (bom saber quando vim não está disponível).
Em muitos casos, quando estamos dentro de uma string que são delimitados por aspas duplas, ou ao escrever um comunicado que não quer pressionar escapar e ir para terminar dessa linha com a seta e pressione o ponto e vírgula (;
) apenas para terminar a linha. Escreva a seguinte linha dentro do seu vimrc arquivo:
imap <C-l> <Esc>$a
O que faz a linha dizer? Ele mapeia Ctrl + L para uma série de comandos. É equivalente a você pressionar Esc (modo de comando), $ (fim de linha), a (append) ao mesmo tempo.
Além disso, observe a distinção entre linha (ou talvez linha física) e linha de tela . A linha é terminada até o final de caráter Line ( "\ n"). Uma linha de tela é tudo o que acontece a ser mostrado como uma linha de caracteres em seu terminal ou na sua tela. Os dois se separam, se você tem linhas físicas mais do que a largura da tela, o que é muito comum ao escrever e-mails e tal.
A distinção aparece nos comandos de fim-de-linha, bem.
- $ e 0 mover para o final ou início da linha física ou parágrafo, respectivamente:
- g $ e g 0 mover para o final ou início da linha de tela ou parágrafo, respectivamente .
Se você sempre preferir o último comportamento, você pode remapear as chaves assim:
:noremap 0 g0
:noremap $ g$
Pressione A para entrar no modo de edição a partir do final da linha.
Ou há a resposta óbvia: usar o Terminar para ir para o fim da linha
.Possivelmente independentes, mas se você quiser iniciar uma nova linha após a linha atual, você pode usar o em qualquer lugar da linha.
A opção mais fácil seria a chave na $ . Se você está trabalhando com blocos de texto, você pode apreciar o comando { e } , a fim de mover um parágrafo para trás e para a frente, respectivamente.
Eu estava acostumado a Início / Fim-me chegar ao início e final das linhas no modo de inserção (do uso no Windows e acho Linux), que Mac não suporta. Isto é particularmente irritante porque quando estou usando vim em um sistema remoto, eu também não pode facilmente fazê-lo. Depois de algumas tentativas dolorosa e erro, eu vim com estas linhas .vimrc
que fazem a mesma coisa, mas obrigado a Ctrl-A para o início da linha e Ctrl-D para o fim da linha. (Por alguma razão, Ctrl-E eu acho que é reservado ou pelo menos eu não conseguia descobrir uma maneira de vincular-lo.) Enjoy.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>
Há um gráfico bom aqui para os códigos de caracteres de controle ASCII aqui para os outros também:
http://www.physics.udel.edu/~watson/ scen103 / ascii.html
Você também pode fazer Ctrl-V + Ctrl bem, mas isso não colar, assim como para lugares como este.
Eu não posso ver atalho para macbook para uso vim no terminal padrão. Espero que isso vai ajudar alguém. Para os usuários do MacOS (testado em MacBook Pro 2018):
fn + ? - mover para a linha começando
fn + ? - mudança para linha de fundo
fn + ? - mover a página para cima
fn + ? - página jogada
fn + g - mover o cursor para o início do documento
fn + deslocamento + g - mover o cursor para o final do documento
Para os dois últimos comandos em algum momento precisa tocar duas vezes.