home / end no modo INSERT no vi em um Mac

1

Em um Mac, posso ir para o início e o fim de uma linha no vi, quando não no modo INSERIR:

^ (início da linha) $ (fim da linha)

Isto é, por exemplo, explicado aqui: Como faço para" end "," home "," page up "e" page down "no meu editor de terminal / VIM?

Mas como eu vou para o começo e o fim de uma linha no vi, quando no modo INSERIR?

cmd + / rola entre janelas e alt + retrocede uma palavra
ctrl + / não faz nada de shift + < kbd> ← / retrocede / avança uma palavra
ctrl + cmd + / retrocede / avança uma palavra
fn + esquerda / vai para o inicio / fim do buffer do terminal

Resumo da solução fornecida por @romainl abaixo:
Terminal > Preferências > Configurações > Teclado > +
Chave: Início, Modificador: Nenhum, Ação: Enviar Texto, \ 017 ^
Chave: Fim, Modificador: Nenhum, Ação: Enviar Texto, \ 017 $

Encontrei esta solução muito simples, que salva um toque de tecla: Mover para o início da linha enquanto estiver no modo Insert .

ctrl + o seguido por 0 (home) ou $ (final) ou ^ (primeiro caractere não-branco)

E aqui está uma resposta muito elaborada: Atravessar texto no modo Inserir

    
por tommy.carstensen 25.04.2014 / 17:42

2 respostas

1

Primeiro, você não deve mover o cursor quando estiver no modo de inserção.

Segundo, apenas alguns teclados Mac vêm sem <Home> / <End> keys. Você deveria ter olhado mais de perto antes de gastar todo esse dinheiro em um computador que é tão doloroso de usar.

Em terceiro lugar, você pode usar os atalhos a seguir quando não tiver chaves físicas <Home> / <End> :

  • fn + para <Home>
  • fn + para <End>

Quarto, Terminal.app captura <Home> / <End> assim, você terá que editar essas ligações na janela "Preferências" se você quiser que o Vim receba <Home> e <End> .

Para <Home> , pressione Ctrl+o (insere 7 ) e ^ :

Para<End>,pressioneCtrl+o(insere7)e$:

    
por 25.04.2014 / 21:25
0

O arquivo gvimrc do sistema distribuído com o MacVim possui dois conjuntos de mapeamentos. Um está habilitado por padrão, o outro está desabilitado. Curiosamente, nenhum dos dois contém um comando para ir ao início / fim da linha no modo Insert, mas ainda vale a pena dar uma olhada:

:e $VIM/gvimrc

Você pode adicionar algo ao seu arquivo vimrc assim:

inoremap <D-Left> <Home>
inoremap <D-Right> <End>

Um pequeno teste mostra que isso funciona na GUI, mas não no terminal, então talvez devesse entrar no seu arquivo gvimrc. Como sobre

inoremap <C-V><S-Left> <Home>
inoremap <C-V><S-Right> <End>

Onde você NÃO digita esses comandos literalmente: <C-V> é um caractere e <S-Left> é outro. Na minha máquina, usando o Terminal.app do Mac, eu tenho o mesmo efeito com isso, digitado literalmente:

inoremap <Esc>OC <End>
inoremap <Esc>OD <Home>

Ao usar a GUI, isso pode ser sobrescrito pelas configurações no arquivo gvimrc do sistema.

    
por 25.04.2014 / 18:54