Eu uso o vi keybindings no meu shell tcsh.
Agora, não sei em qual modo vi estou ( insert
modo ou command
modo), o que leva a muita frustração.
Alguém sabe de uma maneira de mostrar o modo vi atual no shell? (incluindo no prompt ou algo assim)
command-line
shell
vi
prompt
sundar
fonte
fonte
Eu dei uma olhada na documentação, e eu tenho que dizer que não consegui encontrar nenhuma maneira de detectar e exibir o modo vi atual. Espero que você tenha uma agradável surpresa e alguém encontre uma solução, mas eu certamente não vejo uma maneira de fazer o que você pede.
Eu acho que há uma maneira de fazer isso, mas é um exagero enorme para um pequeno aborrecimento, e eu não acho que é isso que você tinha em mente quando você fez essa pergunta. Se isso for verdade, pare de ler agora e aproveite sua vida.
OTOH, se este é realmente o seu animal de estimação, e está deixando você louco, e você realmente quer desesperadamente bater no problema, aqui está minha ideia de como fazer isso:
Em resumo, o Unix implementa o terminal I / O como um fluxo de E / S full-duplex entre o driver do dispositivo e o processo do usuário, no qual os módulos podem ser inseridos. Ele é organizado como uma pilha, para que você possa colocar quantos fluxos desejar. A soma dos fluxos injetados cria seu comportamento de E / S terminal.
Quando um personagem é inserido, o primeiro módulo começa a inspecioná-lo e passá-lo (se quiser). Quando a resposta chega na direção oposta, ela recebe novamente a chance de inspecioná-la e transmiti-la. É assim que um Ctrl-C é manipulado em um nível mais alto para uma chave de caractere normal.
Você pode criar um binário implementando um módulo de fluxo, que, quando chamado, é executado silenciosamente no primeiro plano, inspecionando e transmitindo todos os pressionamentos de tecla, executando sua ação preferida nos pressionamentos de teclas de que você gosta. Para todos os efeitos, vai parecer que você está trabalhando no shell. Oooh Você pode invocar este binário na última (ou primeira, ou qualquer outra) linha do seu .tcshrc e você nem saberia que está lá.
Há um bom primer Aqui , mas não consegui encontrar muita coisa sobre esse assunto, provavelmente porque já passou do seu auge.
fonte
Esta página tem um script bastante detalhado que configura o que você quer (e mais) em zsh . Talvez ele possa ser adaptado para funcionar com o tcsh (não estou muito familiarizado com esse shell).
fonte
Edição de linha de comando com tcsh
Mais notas no
tcsh
costumização página já vinculada acima.fonte
Eu tive o mesmo problema exato e por acaso encontrei a solução. Embora esse segmento seja antigo, não consegui encontrar nenhum outro site que oferecesse uma solução, então suponho que a postagem nesse tópico esteja correta.
Basta redefinir as configurações do seu programa de terminal ou shell. No momento, estou usando o PuTTY e acabei de excluir minhas configurações salvas da conexão salva e recriou uma sessão salva. Trabalhou como um encanto.
Espero que isto ajude!
fonte
Por favor, veja minha resposta em ASSIM . O Bash 4.4 / Readline 7.0 irá adicionar suporte para esta funcionalidade e, no ínterim, eu publiquei versões corrigidas do Bash 4.3 / Readline 6.3 para github .
fonte
Para qualquer um que tenha esse problema exato (como eu): encontrei uma solução stackoverflow . Aparentemente, há suporte nativo para isso em readline, então você pode simplesmente adicionar o seguinte ao seu
~/.inputrc
:E para personalizar o uso real do personagem:
fonte