Criando teclas de atalho ou atalho de teclado para colar frases de texto específicas no Mac OSX

21

Eu tenho uma frase de texto (na verdade, várias fases) que uso frequentemente em vários aplicativos. Gostaria de criar um atalho de teclado ou tecla de atalho que cole essa frase de texto sempre que eu colocar o cursor em um campo de entrada de texto (Apple Mail, Microsoft Word, TextEdit, TextWrangler, janelas do navegador etc.), em vez de copiar constantemente e colando de uma nota adesiva.

Eu preferiria não ter que comprar nenhum aplicativo (parece que o Keyboard Maestro tem essa funcionalidade, mas parece bobo pagar US $ 36 apenas por isso), embora aplicativos gratuitos sejam bons. Tentei procurar em Preferências do sistema> Teclado> Atalhos do teclado, mas nenhuma solução óbvia, e todos os AppleScripts que encontrei parecem não ser traduzidos corretamente para mim. Encontrei outras soluções para esse problema neste fórum para usuários do Windows (como o AutoHotKey), mas nenhuma para usuários do Mac.

Ruthie
fonte

Respostas:

16

A maneira mais fácil de digitar texto com um AppleScript é executar:

tell application "System Events" to keystroke "foo bar"

Você pode acionar isso com um atalho de teclado, criando uma nova Ação Rápida (anteriormente chamada Serviço ) no Automator. Defina-o para receber Sem entrada e arraste Executar AppleScript do painel esquerdo para a direita.

Deve ficar assim:

Salve-o e atribua um atalho de teclado a este serviço em Preferências do sistema »Teclado» Atalhos de teclado .

slhck
fonte
Uau, muito obrigado @slhck! Eu tentei isso, mas estou tendo problemas na última etapa. Ele não aparece no menu "Serviços" quando vou para "Atalhos do teclado" em Preferências do sistema. Sei que ele é executado porque, quando abro o Automator e clico em Play, o texto é digitado no aplicativo anterior, mas não aparece no serviço, para que eu possa adicionar um atalho de teclado, mesmo que o tenha salvo na minha pasta Biblioteca> Serviços . Seguindo os conselhos de outros fóruns que pesquisei no Google, verifiquei duas vezes se a entrada do serviço estava definida como "O serviço recebe: nenhuma entrada" (era) e tentei reiniciar o Finder. Alguma ideia?
Ruthie
Então você salvou do Automator? Normalmente, ele deve aparecer nas opções Atalhos do teclado, em Serviços e Geral, na parte inferior. Você já tentou sair e entrar novamente ou mesmo reiniciar?
slhck
@ sllck, isso soa como uma ótima maneira de fazer isso, mas você poderia detalhar sua resposta um pouco mais? Eu não sou fluente com a maneira como o Automator funciona, quando o inicio, ele me pede "escolha um tipo para o seu documento" e então estou meio que perdido. Eu vou com a resposta de Jonathan Huie por enquanto, mas ainda implica digitar alguma coisa ... Obrigado!
MicroMachine
@ fabriced Você precisa criar um serviço no Automator.
Slhck 19/10/2015
2
Acho que isso funciona em um editor de texto, mas não em um campo de texto em um site. Alguém mais?
Eliot
6

O keystrokecomando pode ser usado apenas para inserir caracteres encontrados no layout atual do teclado e há um atraso visível para longas seqüências de texto. Você também pode inserir texto diretamente:

Esse método também não é realmente utilizável. Há um erro nas versões 10.7 e 10.8, em que os atalhos para os serviços do Automator nem sempre funcionam até você passar o mouse sobre o menu de serviços.

Eu usei o FastScripts para atribuir esse script ao F3:

try
    set old to the clipboard as record
end try
try
    tell application "System Events"
        key code 123 using {option down, shift down}
        keystroke "c" using command down
    end tell
    delay 0.05
    set input to the clipboard
    read POSIX file "/Users/lauri/Notes/snippets.txt" as «class utf8» using delimiter linefeed
    repeat with p in result
        considering case
            if p starts with (input & " ") then
                set the clipboard to text ((offset of space in p) + 1) thru -1 of p
                tell application "System Events" to keystroke "v" using command down
                delay 0.05
                exit repeat
            end if
        end considering
    end repeat
end try
try
    set the clipboard to old
end try

snippets.txt tem esta aparência:

m [email protected]
cmd ⌘

Outra opção é usar DefaultKeyBinding.dict . Isso faria com que ⌥M ou ⌥X e m inserissem um endereço de e-mail:

{
    "~m" = (insertText:, "[email protected]");
    "~x" = {
        "m" = ("insertText:", "[email protected]");
    };
}

Você também pode adicionar texto personalizado aos popovers mostrados ao pressionar as teclas. Veja esta pergunta .

Lri
fonte
2

Procure um aplicativo chamado "Textexpander", que oferece a capacidade de definir frases de texto como @dd que, quando digitadas, serão expandidas para o conteúdo definido - nesse caso, a data real.

AFAIK é Shareware. Portanto, não é realmente gratuito, mas o modo de demonstração não é limitado por tempo.

heiglandreas
fonte
Apenas uma observação rápida, caso seja útil para outras pessoas - o TextExpander não funciona nas janelas do terminal X11.
ggkmath
2

O aplicativo Alfred permite que você faça isso - além de muitas outras coisas - usando os recursos Fluxo de trabalho e Snippets. Eu uso Alfred o tempo todo e recomendo. Para desbloquear fluxos de trabalho, você precisa pagar por uma licença do Powerpack, mas não se arrependerá. 😉

mklbtz
fonte
Concordo que este é um dos aplicativos mais úteis que qualquer pessoa que possua um Mac deve ter. Migrei totalmente dos serviços personalizados do Automator para Alfred.
slhck 12/07
1

Basta clicar em: Preferências do Sistema, Teclado, Texto e digite seu atalho e frase

Jonathan Huie
fonte
1
Gosto dessa resposta, mas na verdade não permite "atalhos de teclado" ou "teclas de atalho", ainda é necessário inserir um texto (e não uma combinação de teclas) que seja substituído pela máquina.
MicroMachine
1
Isso parece funcionar apenas em alguns aplicativos selecionados. Ela não funciona na maioria dos lugares que eu gostaria que, por exemplo, campos de entrada do navegador, meu cliente de email (Thunderbird), Terminal, etc.
Do not Panic
0

Um teclado separado chamado Teclado Marciano conterá cadeias de texto como frases e até parágrafos curtos. Isso evita que você digite as teclas irritantes e irritantes que você digita repetidamente, dia após dia. As teclas funcionam como teclas "colar". Ele tem a capacidade de armazenar todos os atalhos no Word em um único teclado, usando as teclas da camada shift. É principalmente para uso profissional, por isso é um pouco caro.

Rick
fonte