"Corrija" as teclas Home, End, Page Up e Page Down do seu Mac

Quem chegou ao Mac vindo de outras plataformas, como o Windows ou o Linux, pode passar muito tempo estranhando o comportamento das teclas Home, End, Page Up e Page Down (ou Fn pressionada em conjunto com ⬅, ➡, ⬆ e ⬇, nos MacBooks) no OS X: ao invés de mover o cursor para o começo ou final da linha, uma tela acima ou uma tela abaixo, como estamos acostumados, elas fazem algo bem diferente:

  • Home: desloca a janela de visualização até a primeira linha do texto
  • End: desloca a janela de visualização até a última linha do texto
  • Page Up: desloca a janela de visualização uma tela acima
  • Page Down: desloca a janela de visualização uma tela abaixo

Em todos os 4 casos acima, a janela de visualização é deslocada sem mover o cursor/ponto de inserção, em um comportamento nitidamente planejado para ser usado por pessoas que usam o mouse como auxiliar constante na tarefa de composição.

Em alguns casos (como o do BBEdit, meu editor de texto preferido), esse comportamento é configurável, como você pode ver na tela acima.

Na maioria dos demais casos, a movimentação do cursor segue cegamente o comportamento definido pelo sistema operacional, alterando profundamente o funcionamento dessas teclas fundamentais para a produtividade na edição.

O OS X não oferece a alternativa de alterar esse comportamento nas Preferências, mas felizmente é possível alterar essa configuração da forma clássica: basta criar um arquivo ~/Library/KeyBindings/DefaultKeyBinding.dict (ou /Users/[seu login]/Library/KeyBindings/DefaultKeyBinding.dict – crie o diretório se necessário) e incluir nele as seguintes linhas:

{
/* home */
"\UF729" = "moveToBeginningOfLine:";
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";

/* end */
"\UF72B" = "moveToEndOfLine:";
"$\UF72B" = "moveToEndOfLineAndModifySelection:";

/* page up/down */
"\UF72C" = "pageUp:";
"\UF72D" = "pageDown:";

/* Cmd-Left */
"@\UF702" = "moveToBeginningOfLine:";
"$@\UF702" = "moveToBeginningOfLineAndModifySelection:";

/* Cmd-Right */
"@\UF703" = "moveToEndOfLine:";
"$@\UF703" = "moveToEndOfLineAndModifySelection:";
}

Pronto: a partir da próxima execução dos seus aplicativos que fazem uso do mapeamento de teclas default do sistema operacional, eles irão tratar as teclas Home, End, Page Up e Page Down (ou Fn pressionada em conjunto com ⬅, ➡, ⬆ e ⬇, nos MacBooks) da forma como você se acostumou há décadas, e de brinde as combinações ⌘+⬅ e ⌘+➡ vão passar a operar como se fossem Home e End. Ah, e quando usadas em conjunto com a tecla Shift, as teclas Home e End modificam as seleções da forma tradicional também.

No Terminal

Se você se interessa por configurar itens a partir de arquivos-texto e por modificar o comportamento do teclado, é grande a probabilidade de você ser usuário também do Terminal, e neste caso você irá notar que as alterações acima não têm o mesmo efeito lá.

Mas, graças a um artigo clássico indicado pelo Fábio FZero, descobri qual a configuração necessária para essas teclas funcionarem como no tempo em que eu usava um Terminal especialmente bem configurado no Linux.

A configuração é em duas partes, sendo que a primeira ocorre nas Preferências do app Terminal (basta pressional ⌘+, quando estiver usando o Terminal), aba Teclado.

Na aba Teclado, altere as teclas abaixo para que fiquem com a ação "enviar string ao shell" e o conteúdo a seguir:

  • Início: [1~
  • Fim: [4~
  • Avançar página: [6~
  • Retroceder página: [5~

Se tiver dificuldade para digitar os códigos, simplesmente copie e cole a partir da lista acima.

Em seguida, para completar, edite (ou crie) um arquivo ~/.inputrc com o seguinte conteúdo:


"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": history-search-backward
"\e[6~": history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
set completion-ignore-case On

E pronto: na próxima aba ou terminal que você abrir, as teclas Home e End deslocarão o cursor para o início e final da linha, Option+setas deslocarão o cursor de palavra em palavra, e Page Up e Page Down farão pesquisa no histórico (por exemplo, digite ls e Page Up, e você verá os últimos comandos ls que constam no seu histórico).

Comentar

Comentários arquivados

Mais acessados:

Artigos recentes: