Na massa, que é como eu principalmente usei o VIM, eu poderia fazer o seguinte:
- Página para cima / baixo: usando a tecla nativa de página para cima / baixo. No Mac, a alternativa é Fn + Para cima / Para baixo, que não funciona no terminal (não rola dentro do arquivo vim, mas rola o buffer do terminal)
- Da mesma forma, as teclas Fn + direita / esquerda não me levam ao início / fim da linha
Como emulo essa funcionalidade no Mac OS X?
Respostas:
Esta não é uma questão específica para mac, é realmente uma questão vi.
No modo de navegação, ctrl-f rola uma página para baixo e ctrl-b rola uma página (pense em "F" ou "B" ou "B"). Ctrl-d rola metade da página e ctrl-u rola metade da página.
^ leva você ao início de uma linha e $ ao final. Eu sei, eu sei, mas há razões históricas para isso.
Aqui está uma boa dica sobre os controles do vi. O vi é um pouco misterioso, mas depois de internalizado, é o editor de texto mais rápido e mais rápido do mundo.
fonte
As preferências padrão do terminal são mapeadas Shift- Page Upe Shift- Page Downpara as seqüências de caracteres que informam a programas como Vim e Emacs para rolar (
ESC [ 5 ~
eESC [ 6 ~
).Se você deseja que essas teclas enviem sequências de caracteres para o terminal sem o Shiftmodificador, você pode personalizar o mapa do teclado:
Se você fizer isso, recomendo que você inverta o significado do Shiftmodificador para essas chaves trocando os mapeamentos pelas chaves com e sem deslocamento, para que os comportamentos alternativos ainda estejam disponíveis. Além disso, consulte o menu Exibir , que contém comandos de rolagem que usam o Commandmodificador para que estejam disponíveis, independentemente do mapa do teclado do terminal.
Da mesma forma, Shift- Homee Shift- Endsão mapeados para ir para o início / fim da linha atual (
ESC [ H
eESC [ F
). Essas sequências são entendidas pelo Bash, mas você pode precisar personalizar o Vim para entendê-las ou editar os mapeamentos especificamente para o Vim. O Vim, o Emacs e alguns outros programas enviam uma sequência de escape para colocar o terminal no "Modo Cursor do Aplicativo", onde as teclas Home / End enviamESC O H
eESC O F
, mas o Terminal (a partir do 10.9) não implementa esse comportamento. Portanto, você pode alterar o mapa do teclado para enviar esses outros códigos (o Bash também os entende). (Em outros sistemas operacionais, Homee Endsão usados para o início / fim da linha, o Terminal fornece o Shiftmodificador para simetria.)Control- Left Arrowe Control- Right Arrowtambém são mapeados para "mover para o início / fim de linha" por padrão, embora sejam diferentes dos mapeados para Shift- Homee Shift- End. Em vez disso, eles são mapeados para as sequências compatíveis com Emacs e Bash
ESC [ 5 D
eESC [ 5 C
. Supondo que eles não estejam em uso pelo Vim, a abordagem mais simples seria personalizar o Vim para aceitá-los, usando ~ / .vimrc.Observe que nas versões mais recentes do macOS, o Terminal não possui mais mapeamentos explícitos para Homee Endnas preferências por padrão. Em vez disso, possui um comportamento dinâmico em que as teclas são mapeadas automaticamente para o início / fim de linha quando a tela alternativa está ativa - por exemplo, ao usar um aplicativo de tela cheia como emacs, vim, screen ou tmux. Ao usar um programa orientado a linhas como um shell na tela principal, eles continuam a rolar a exibição do terminal por padrão. O Shiftmodificador inverte o comportamento.
fonte
\033[5~
(e ... 6.) Para PageDown / Up.A solução mais fácil e melhor é
n
+↓
, onden
está o número de linhas que você deseja diminuir e↓
é a tecla para baixo.Eu regularmente apenas faço
12
+↓
e22
+↓
.fonte
Eu estava acostumado com o Início / Fim, levando-me ao início e ao fim das linhas no modo Inserir (do uso no Windows e acho que Linux), que o Mac não suporta. Isso é particularmente irritante porque, quando estou usando o vim em um sistema remoto, também não consigo fazer isso facilmente. Após algumas tentativas e erros dolorosos, criei algumas
.vimrc
linhas que fazem a mesma coisa e, eventualmente, encontrei alguém que encontrou uma solução semelhante aqui:https://coderwall.com/p/fd_bea
Apreciar.
fonte