Estou usando o Kubuntu 10.04. Gostaria de alterar algumas das teclas de atalho padrão para o bash (terminal).
Aqui estão os atalhos que eu gostaria de configurar:
Ctrl- Cpara copiar o texto selecionado no terminal para a área de transferência.
Ctrl- Vpara colar da área de transferência no terminal.
Ctrl- Zpara desfazer a edição na linha atual no terminal.
Ctrl- Shift- C(ou melhor ainda, Super- C) para finalizar o comando.
Ctrl- Shift- Z(ou Super- Z) para ser o comando em segundo plano.
Ctrl- Shift- V(ou Super- V) para ser o comando de inserção literal (ou o que Ctrl+ zfoi feito antes).
Como faço essas alterações?
BTW, eu gosto da maneira como o terminal funciona no OS X. O uso da tecla de comando torna todos os comandos de copiar / colar muito consistentes (ao contrário de muitas outras coisas no OS X).
PS: Eu li a página de manual do bash e não ajudou. Isso me deu idéias, mas preciso de exemplos específicos para as combinações acima. Obrigado.
Respostas:
Essas não são características do bash, são características do driver do terminal. Como tal, eles são especificados por
stty(1)
.fonte
Isso está quase completamente resolvido agora. Parte da solução foi trazida à minha atenção pelo MTK358 em http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ . Ele apontou o fato (bastante óbvio, para meu embaraço) de que as teclas de atalho de copiar e colar podem ser facilmente alteradas pelas configurações do menu do konsole. Depois que vi isso, demorou cerca de 1 minuto para configurar o Ctrl-C e o Ctrl-V para copiar e colar no terminal.
A outra parte da solução deveria estar clara na página de manual stty, mas não era (para mim). Acabei experimentando com base em várias pistas, como as postadas acima.
Decidi qual chave não numérica queria substituir Ctrl-C como o comando final. (Eu usei "k"). Eu nunca encontrei nenhuma informação sobre como transmitir um modificador de mudança para stty, então desisti disso. Com isso decidido, tudo que eu precisava fazer era inserir o seguinte na linha de comando:
stty intr \ ^ k
Eu verifiquei que tudo funcionava como desejado.
Agora eu só tinha que colocar o comando único acima (stty intr \ ^ k) em um script de inicialização. Não tenho certeza de qual deles é o "adequado". Eu gostaria que essa mudança fosse ampla e permanente no sistema.
Alguma sugestão sobre qual script eu devo colocar o comando?
E, finalmente, quanto às respostas pregativas, elas são desnecessárias e inúteis.
fonte
Alguns destes podem ser configurados usando o mecanismo de atalho de teclado normal do KDE. No menu "Configurações" do Konsole, clique em "Configurar atalhos" e você verá uma caixa de diálogo que poderá ser usada para alterar as combinações de teclas das funções que são tratadas pelo KDE. Isso permitirá que você remapeie Ctrl + C para copiar e Ctrl + V para colar - mas lembre-se de que, depois disso, essas seqüências de teclas não serão mais passadas para o terminal, para que você não possa usar Ctrl + C para interromper um programa, por exemplo.
Outras funções são controladas pela
readline
biblioteca, que você pode configurar editando o arquivo~/.inputrc
. Para que Ctrl + Z reverta todas as edições feitas na linha atual, adicionemas essa sequência de teclas provavelmente já está interceptada pelo terminal, portanto, você pode precisar
stty
desassociá-lo antes que ele funcione. Primeiro procure^Z
na saída destty -a
(como mostrado na resposta de Ignacio) e, em seguida, por exemplo, se aparecersusp = ^Z
, executepara desvincular esse mapeamento de chave.
As outras mudanças que você está perguntando teriam que ser feitas
stty
como Ignacio diz, já que essas são funções terminais, mas não sei exatamente como. A questão é que não sei se o terminal reconhece a Shift, ou se reconhece, como transmitir essas informaçõesstty
.fonte
Usos Bash
emacs
ouvi
modo na linha de comando. Não tem conceito de "seleção" ou "área de transferência". Ele usa coisas como "buffer de interrupção" e "ponto", "marca", "palavra", "linha", "interrupção" e "puxão" etc.Tentar usar a funcionalidade do estilo GUI nele será frustrante na melhor das hipóteses e não funcionará completamente. Você terá que tentar combinar funções de
stty
,readline
e seu terminal (presumivelmenteTerminal.app
para você). Você vai precisar para remapear funções, tais comointr
,susp
,lnext
, etc., assim você ainda pode usar seus recursos.Eu recomendo fortemente contra tais modificações radicais. Apenas não foi projetado para fazer o que você deseja.
Quando em Roma...
fonte
Eu corro Ubuntu e mudou o atalho para copiar a partir do padrão Ctrl+ Shift+ Cpara o mais normal e simples Ctrl+ C. Este, porém, me fez correr em problema não ser capaz de enviar o comando de interrupção ^ C .
Graças à resposta @Paul , encontrei executando o comando
Permitirá que eu envie o comando de interrupção usando Ctrl+ K. No entanto, esse comando precisava ser executado toda vez que abria o terminal, o que é um aborrecimento (assim como ele se mencionou).
Com um pouco de pesquisa (pesquisando no Google) , descobri como executar um comando cada vez que o terminal é aberto (no Ubuntu de qualquer maneira) .
Assim, finalmente, executar o seguinte comando (uma vez) (no Ubuntu 18.04 e provavelmente mais) fornecerá o comportamento esperado sempre.
Por fim, vale ressaltar que você não deve usar o Kbotão. Você pode trocar a letra k em todos os comandos acima para qualquer tecla de sua escolha.
fonte