Como seleciono uma linha no OSX?

8

Estou editando texto. Uma maneira complicada de selecionar uma linha seria ir para o início da linha (cmd <-) e depois selecionar a linha inteira até o fim (Shift cmd ->). Posso fazer melhor?

Também serão bem-vindos atalhos para cortar a linha e armazená-la em um buffer. (cmd D) não armazena a linha em um buffer.

Dávid Natingga
fonte
11
Em qual programa você está editando texto?
ForeverWintr
Principalmente no Eclipse no terminal, mas esperava obter uma solução geral para cada aplicativo, se possível.
Dávid Natingga
em um teclado completo no os x home, o shift-end selecionará a linha inteira, mas você provavelmente não possui um teclado completo. Também na maioria dos aplicativos, posicionar o cursor no início da linha e pressionar Shift pressionando a seta para baixo funciona.
Sdjuan

Respostas:

10

Eu sempre uso o seguinte:

  • cmd - Left arrow para chegar ao início da linha
  • shift + cmd + right arrow para marcar a linha
  • cmd - C(ou cmd - X) para copiar (ou cortar) a linha marcada na área de transferência

Então eu posso ir para onde eu quiser e colar a linha cmd - v.

Porém, como o MacOS é fortemente fixo a uma Interface gráfica do usuário, é possível usá-lo sem o mouse, mas às vezes - como no seu caso - envolve um pressionamento de tecla a mais do que se deseja.

heiglandreas
fonte
11
Quase à direita: shift + cmd - seta para a direita para marcar a linha, NÃO shift + cmd - seta para baixo.
Kevin Le - Khnle
11
shift + cmd + seta para baixo marca a linha atual, incluindo o caracter da nova linha, shift + cmd + seta para a direita marca a linha, excluindo o caracter da nova linha. Então, nós dois estamos bem;)
heiglandreas
5

A maioria dos aplicativos (Terminal, TextEdit, URL / barra de pesquisa do Safari, etc) que aceitam entrada de texto respeitam as ligações de teclas padrão (não sabe o padrão ... ANSI, ASCII?) Que incluem

control+ a: início da linha

control+ e: fim de linha

Então, control+ shift+ a or epara selecionar uma linha, dependendo da sua posição.

Além disso:

control+ shift+ k: mata até o final da linha

control+ shift+ y: puxar (do buffer)

Uma lista completa pode ser gerada com o bindkeycomando no Terminal, embora nem todos funcionem em todos os aplicativos.

Nevin Williams
fonte
11
As visualizações de texto do OS X não usam o readline, apenas suportam muitas das mesmas combinações de teclas que o readline no modo emacs. Cu, C- @ e Cw não devem funcionar em visualizações de texto baunilha por padrão, mesmo que você possa defini-las em DefaultKeyBinding.dict.
Lr 22/04
Eu testei tudo, antes de postar ... exceto que fiz em um prompt de comando. doh.
Nevin Williams
Isso é legal, mas ainda estou procurando algo que funcione globalmente.
Louis Waweru
2

Você pode criar ~/Library/KeyBindings/e salvar uma lista de propriedades como esta como DefaultKeyBinding.dict:

{
    "~l" = selectParagraph:;
    "~z" = (selectParagraph:, delete:);
    "~x" = (selectParagraph:, cut:);
    "~c" = (selectParagraph:, copy:);
}

Após a reabertura dos aplicativos, por exemplo, ⌥L deve selecionar uma linha na maioria das visualizações de texto nativas. Porém, ele não funciona no Eclipse, no Terminal ou no Xcode. Para obter mais informações, consulte o artigo Cocoa Text System ou meu site .

Outra opção é usar o KeyRemap4MacBook e salvar algo assim como private.xml :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>TERMINAL</not>
<not>EMACS</not>
<not>VIRTUALMACHINE</not>
<not>ECLIPSE</not>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::E, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
<item>
<name>test2</name>
<identifier>test2</identifier>
<only>ECLIPSE</only>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

Na maioria dos aplicativos, ⌃A move para o início de uma linha não quebrada e ⌘ ← move para o início de uma linha quebrada, mas ⌃A parece não funcionar no Eclipse.

Consulte a fonte para obter os valores do código-chave e configurações predefinidas .

Lri
fonte
1

Encontrei uma solução que parece estar funcionando em todos os aplicativos Cocoa: as teclas home& endse comportam como máquinas que não são da Apple (vá para o início / fim de uma linha em vez de para um documento inteiro).

Um arquivo ~/Library/KeyBindings/DefaultKeyBinding.dictprecisa conter o seguinte:

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

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

Se o arquivo ou diretório não existir, copie o trecho de código acima para sua ... área de trabalho, abra o Terminal e insira estes dois comandos:

mkdir ~/Library/KeyBindings
pbpaste > ~/Library/KeyBindings/DefaultKeyBinding.dict

Pode ser necessário reiniciar o aplicativo para que ele se comporte conforme o esperado.

Louis Waweru
fonte
1

Estou surpreso que ninguém tenha mencionado este

Shift + CMD + seta esquerda (ou seta direita se você estiver no início)

Sharadh Deshpande
fonte
Não, @heiglandreas mencionou (não explicitamente, mas o fez) em sua resposta. Veja a segunda bala.
C0deDaedalus
1

Uma das vantagens do macOS over (WIN / Linux) são os atalhos de teclado do estilo emacs global em quase todas as caixas de texto (uma exceção é o Microsoft Office para Mac, que redefine esses atalhos de maneira irritante ...)

Em relação a essa pergunta, eu sempre uso C-apara chegar ao início da linha, C-S-eselecionar até o final da linha e depois 'CMD-c' para copiar o.

Se você tiver uma linha (que termina com a \ n) que cruza muitas linhas literais, normalmente faria o seguinte:

1) C-air para o início da linha

2) C-npara ir para o início da próxima linha literal

3) C-bvoltar um caractere

4) C-S-apara selecionar até o início da linha

5) CMD-cpara copiar o conteúdo

Pode ser uma solução complexa, mas deve funcionar na maioria das caixas de texto no macOS.

phye
fonte
0

control+ shift+aef

(digite aef enquanto mantém pressionada a tecla Control e Shift)

Isso fornece o mesmo resultado que clicar três vezes na linha atual.

Observe que isso inclui a EOL à direita na seleção. Se não é isso que você deseja, deixe de fora f .

Como bônus, depois de f , pressione n repetidamente para selecionar várias linhas.

Testado no Xcode e no TextEdit.

jedwidz
fonte