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.


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.


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.


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 .


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.


1

Estou surpreso que ninguém tenha mencionado este

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


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.