peixes control-left keybindings control-right

4

Estou usando terminator juntamente com fish e quero usar Alt-Left etc para navegar no terminator e Ctrl-Left e Ctrl-right para mover o cursor por palavra. O problema é quando eu faço

bind \cleft backward-word

não altera o comportamento do Ctrl-left ou right. Isso parece seguir o que a documentação e eu puxei a chave e o comando dos sinalizadores -K e -f e

bind -a

mostra que as ligações existem.

Eu usei o mesmo comando para outras seqüências, mas não consigo fazer isso funcionar. Estou faltando alguma coisa?

    
por Isaac Gomez 07.04.2012 / 08:53

5 respostas

4

Eu consertei no meu fim. Isso vai na configuração:

bind \e\[1\;5C forward-word
bind \e\[1\;5D backward-word

"source", executando:

. .config/fish/config.fish

("." é fonte de peixe)

Espero que ajude você!

    
por 28.06.2012 / 14:30
3

digite bind \cleft backward-word na linha de comando do fish para fazer o trabalho. Se você quer que ele seja executado em cada inicialização, coloque:

function fish_user_key_bindings
    bind \cleft backward-word
end

em .config/fish/config.fish

De documentação da associação de peixes

Key bindings are not saved between sessions by default. Bare bind statements in config.fish won't have any effect because it is sourced before the default keybindings are setup. To save custom keybindings, put the bind statements into a function called fish_user_key_bindings, which will be autoloaded.

    
por 22.07.2016 / 11:34
1

A resposta aceita está quase funcionando, mas descobri que não posso vincular automaticamente as chaves através do arquivo config.fish. Eu acabo modificando o fish_vi_key_bindings.fish (que sob / usr / share / fish / functions) diretamente.

Além disso, apenas adicionando ctrl-left e ctrl-right ao modo normal sob vi keybind não é suficiente, tem que adicionar insert e modo visual também.

bind \e\[1\;5C forward-word
bind \e\[1\;5D backward-word
bind -M insert \e\[1\;5C forward-word
bind -M insert \e\[1\;5D backward-word
bind -M visual \e\[1\;5C forward-word
bind -M visual \e\[1\;5D backward-word

Desculpe este deve ser um comentário para a resposta aceita , não uma resposta independente, mas devido a não ter reputação suficiente para adicionar comentários (pessoalmente, não acho que essa reputação o sistema é razoável), e eu senti que deveria compartilhar isso com alguém que está enfrentando o mesmo problema, ou para alguém que tenha experiência em como corrigir o problema.

    
por 14.02.2016 / 12:45
0

O "~ / .bash_profile" para peixes está em ~ / .config / fish / config.fish (se não existir, crie-o). Para que seja executado no login, coloque isso no arquivo config.fish:

if status --is-login
 bind \e\[1\;5C forward-word
 bind \e\[1\;5D backward-word
end
    
por 23.04.2013 / 22:59
0

A primeira coisa a notar é que ctrl + seta para a esquerda não faz sentido e não pode ser feito em nenhum shell. Isso porque a chave ctrl não envia caracteres por si só (a menos que você tenha feito algo muito incomum em sua configuração de terminal). O que essa chave faz é modificar a próxima letra que é pressionada. Por exemplo, ctrl + a faz com que o terminal envie o valor hexadecimal de byte único 0x01. Como chaves como a seta para a esquerda normalmente enviam uma seqüência de caracteres que começam com o caractere esc , e escape já é um caractere de controle, aplicando o modificador de controle a ele não faz nada.

Como você encontrou a maneira usual de fazer isso, use o alt . Se você configurou seu terminal para tratar isso como uma chave "meta" que prefixa o que segue com o caractere de escape, você pode pressionar alt + page-up para ter o terminal enviar \e\e[5~ . Se você construir peixes a partir de fontes git, você obterá um programa prático chamado fish_key_reader , que torna o aprendizado que as diferentes chaves enviam muito mais facilmente. Isso será no lançamento do peixe 2.3.1, que deve estar disponível em algumas semanas.

Por fim, as ligações de teclas personalizadas devem estar no seu arquivo de configuração pessoal, não no script global /usr/share/fish/functions/fish_default_key_bindings.fish . Você deve criar um arquivo chamado $HOME/.config/fish/functions/fish_user_key_bindings.fish com o seguinte conteúdo:

function fish_user_key_bindings
    bind \e\[1\;5C forward-word
    bind \e\[1\;5D backward-word
end
    
por 22.06.2016 / 16:49