Como pular para o início ou o fim da linha no vim + OS X
17
No terminal, posso fazer isso pressionando shift + home e shift + end, mas parece que não funciona no vim. As teclas inicial e final rolam apenas a janela do terminal. Eu gostaria de pular no modo de edição.
No modo de comando, você pode encontrar na Folha de dicas do Vim (0 e $): fprintf.net/vimCheatSheet.html . Eu não sei sobre o modo de edição, no entanto.
Gnoupi
Respostas:
13
Esta resposta assume que você está usando o vim em uma janela do Terminal .
As ligações padrão para Home e End são um pouco diferentes do que um programa esperaria com base na configuração TERM usual (ou seja, uma variante xterm). Se você deseja manter as ligações padrão (e ter que usar as variantes Shifted no Terminal ), tente colocar algo assim em seu .vimrc:
:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>
Caso contrário, você pode tentar ajustar os códigos que o Terminal envia quando você usa o Início e o Fim (mesmo sem deslocamento, se desejar). Uma pesquisa provavelmente mostraria alguns lugares que descrevem como fazê-lo ( aqui está um ). A idéia básica é que você deseja que o Terminal envie ESC [1 ~ em vez de ESC [H para Casa e ESC [4 ~ em vez de ESC [F para Fim (ou Shift-Home / Shift-End, se você quiser manter Home / Fim para acessar a rolagem). Eu descreveria o processo com mais detalhes, mas tenho apenas 10.4 e sei que o Terminal foi alterado muito na 10.5 e posterior.
Com o iTerm e o Vim, você pode usar as setas fn + direita e esquerda no modo de inserção para pular para o início ou o fim da linha. Com Terminal.app você usa shift + setas .
O OP quer pular no modo de edição, não no modo de comando, então essas teclas irão literalmente inserir 0e $.
slhck
1
Como complemento à resposta de Chris , você também pode conseguir a navegação por palavras (com Option+arrowteclas), apenas adicionando essas quatro linhas:
:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el
Observe que oestá em minúscula, para que não saia do insertmodo para a operação. Você também pode alterar as letras maiúsculas Ona resposta original para o mesmo efeito.
No MacVim, você pode usar o comando 'Seta para a esquerda' e o comando 'Seta para a direita' para ir para o início e o fim da linha enquanto estiver no modo de edição.
Respostas:
Esta resposta assume que você está usando o vim em uma janela do Terminal .
As ligações padrão para Home e End são um pouco diferentes do que um programa esperaria com base na configuração TERM usual (ou seja, uma variante xterm). Se você deseja manter as ligações padrão (e ter que usar as variantes Shifted no Terminal ), tente colocar algo assim em seu
.vimrc
:Caso contrário, você pode tentar ajustar os códigos que o Terminal envia quando você usa o Início e o Fim (mesmo sem deslocamento, se desejar). Uma pesquisa provavelmente mostraria alguns lugares que descrevem como fazê-lo ( aqui está um ). A idéia básica é que você deseja que o Terminal envie ESC [1 ~ em vez de ESC [H para Casa e ESC [4 ~ em vez de ESC [F para Fim (ou Shift-Home / Shift-End, se você quiser manter Home / Fim para acessar a rolagem). Eu descreveria o processo com mais detalhes, mas tenho apenas 10.4 e sei que o Terminal foi alterado muito na 10.5 e posterior.
fonte
Com o iTerm e o Vim, você pode usar as setas fn + direita e esquerda no modo de inserção para pular para o início ou o fim da linha. Com Terminal.app você usa shift + setas .
fonte
use 0 e $ para ir para o início e o fim da linha. Consulte este site: http://alvinalexander.com/linux/vi-vim-editor-end-of-line .
fonte
0
e$
.Como complemento à resposta de Chris , você também pode conseguir a navegação por palavras (com
Option+arrow
teclas), apenas adicionando essas quatro linhas:Observe que
o
está em minúscula, para que não saia doinsert
modo para a operação. Você também pode alterar as letras maiúsculasO
na resposta original para o mesmo efeito.fonte
No MacVim, você pode usar o comando 'Seta para a esquerda' e o comando 'Seta para a direita' para ir para o início e o fim da linha enquanto estiver no modo de edição.
fonte
Vá para Terminal -> Preferências -> Perfis -> Teclado e adicione:
Chave: ↖ Ação: \ 033OH
Chave: ↗ Ação: \ 033OF
fonte