OSX: modificando a seleção de texto com ⌘⇧ → e ⌘⇧ ←

10

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

criar seleção


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 :

manipular a seleção com a opção-shift-setas


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} |

manipular seleção com setas de comando-shift


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.

Jakub Roztocil
fonte
Posso reproduzir isso na 10.10.1 - talvez tenha sido corrigido na versão beta?
0942v8653
11
Estou no Yosemite 10.10.2 (também o adicionei à pergunta agora). Mas acho que esse sempre foi o caso. Eu uso principalmente editores de código com bons recursos de edição de texto, mas adoraria encontrar uma solução no nível do SO para isso.
Jakub Roztocil
11
Consulte este documento de suporte da Apple, que afirma que cmd + shift + seta para a direita será 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!
Asmus
11
@ Asmus Existe um pequeno asterisco após a descrição desse (e muitos outros) atalhos de teclado, mas não há explicação para isso. Alguma idéia do que isso (*)significa?
Jakub Roztocil
11
Não faço ideia do que isso (*)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.
Asmus

Respostas:

1

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.

Tetsujin
fonte
O que isto significa? "Uma seleção múltipla de texto".
Nicolas Barbulesco 13/03/2015
1

Então, a meu ver, a navegação de texto no OS X funciona (e espera-se que funcione) assim:

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

  2. 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:

  1. o uso das altcombinações de teclas acima aumentará / diminuirá a seleção com base na direção (sempre modificando o ponto final da sua seleção anterior, presumindo que você tenha perdido um pouco o ponto final ). O mesmo vale para adicionar caracteres únicos apenas com as teclas shift + seta.
  2. o cmdcombo aumenta nas duas direções, presumindo que você esteja selecionando grandes pedaços de texto de qualquer maneira.

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

plutil -convert xml1 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict -o -|pl|grep -v noop:|ruby -pe '$_.gsub!(/[^ -~\n]/)' | grep -i selection

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

Asmus
fonte
Penso que Apple Up e Apple Down vão para o início e fim do documento e não navegam por página.
Nicolas Barbulesco 13/03/2015
11
@NicolasBarbulesco você está completamente certo, eu escrevi "documento" apenas uma linha antes, não sei por que escrevi "páginas" a seguir. Corrigido agora.
Asmus