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.


4
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.


8

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 .



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.


0

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.


Parece que o JtR está usando o vim dentro do Terminal.app em vez de usar o MacVim (que eu recomendo muito, e também uso pessoalmente).
Matrix Mole

0

Vá para Terminal -> Preferências -> Perfis -> Teclado e adicione:

Chave: ↖ Ação: \ 033OH

Chave: ↗ Ação: \ 033OF

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.