Selecionei algum texto usando o teclado, começando na linha inferior e subindo (o caractere | indica a posição do cursor):
AAA | {BBB CCC
DDD} EEE FFF
Agora, gostaria de alterar a seleção para que ela comece no final da primeira linha , ou seja, para que fique assim:
Resultado esperado:
AAA BBB CCC | {
DDD} EEE FFF
Posso reduzir a seleção palavra por palavra com ⌥ ⇧ →:
Mas a maneira natural de fazê-lo seria via ⌘ ⇧ →, pular diretamente para o final da primeira linha. Em muitos editores de texto decentes, isso funciona bem (por exemplo, Sublime Text 2). Eles também mantêm a |
posição visível quando o texto é selecionado entre.
O comportamento padrão dos aplicativos OSX, no entanto, é que eles ignoram o fato de que o cursor está atualmente no início da seleção e movê-lo para a direita deve remover a seleção. Em vez disso, ⌘ ⇧→sempre estende a seleção do final até o final da linha, não importa onde o cursor esteja atualmente:
Resultado atual:
AAA {BBB CCC
DDD EEE FFF} |
Existe alguma maneira de fazer com que aplicativos OSX nativos também se comportem da maneira esperada?
Estou no OSX Yosemite 10.10.2, mas acho que esse problema existe desde que me lembro.
fonte
select text between the insertion point and the end of the current line
. A única linha no seu exemplo, em que a seleção ainda não inclui o final da linha , é a última linha. Portanto, o comportamento esperado no OS X é estender a seleção a partir daí, não reduzi-la na linha de partida! Eu sei que alguns editores se comportam de maneira diferente, mas estão fazendo errado, e não o sistema!(*)
significa?(*)
significa, mas provavelmente sobrou das versões anteriores da documentação. Atualizei minha resposta um pouco para incluir a única opção de vinculação de teclas global que conheço, mas infelizmente tenho certeza de que não há como alcançar o que você está procurando. Como o comportamento não é interno, os aplicativos não saberiam como lidar com isso, mesmo que você pudesse acioná-lo.Respostas:
O Mac não usa a posição do cursor se você tiver uma seleção múltipla de texto, pois considera que o cursor está em 'todo o texto selecionado'.
Você pode ver isso demonstrado se usar em Cmd ⌘ Shift ⇧ ← vez de →
Adicionar à seleção Shift ⇧ inclui a seleção anterior.
Não é uma correção, mas pode ser uma solução alternativa → que moveria o cursor para o final da sua seleção atual, desmarcando-a simultaneamente e depois Cmd ⌘ Shift ⇧ ← selecionando o início da linha.
fonte
Então, a meu ver, a navegação de texto no OS X funciona (e espera-se que funcione) assim:
Navegue por linha (ou documento, ou seja, grandes quantidades de dados):
cmd+ teclas de seta: move-se por linhas (esquerda / direita para linhas, cima / baixo para todo o documento). Segure shiftpara selecionar
Navegue por palavra (ou seja, pequenos pedaços de dados):
alt+ teclas de seta: move-se por palavra (esquerda / direita). Segure shiftpara selecionar.
Portanto, para alcançar seu "resultado esperado", pressione a seta para a direita primeiro para chegar ao final da sua seleção atual e, em seguida, cmd+ shift+ ← para selecionar a linha que leva a ela.
Quando você já tem uma seleção:
Atualizar
Para encurtar a história: o que você deseja não é realmente possível. Se você olhar para a lista de ligações de teclas do sistema disponíveis executando
Você verá que, embora possa vincular chaves personalizadas a todas as funções de seleção,
~/Library/KeyBindings/DefaultKeyBinding.dict
não existe uma função que atinja o comportamento solicitado (uma vez que esse comportamento não está incorporado no sistema).fonte