Como posso forçar o fish a salvar novas associações de teclas persistentemente após fechar uma janela de terminal?

3

Como posso forçar o fish a salvar novas associações de teclas persistentemente depois de fechar uma janela de terminal?

No momento, tenho o problema:

  • Eu abro uma janela de terminal, o shell padrão é peixe.
  • Eu adiciono uma ligação de chave com: bind \ eg functionname
  • Funciona na janela do terminal
  • Agora fecho a janela do terminal
  • Abra uma nova janela de terminal, novamente fish is default shell
  • A ligação não funciona mais e não aparece na saída de fish -a
por NES 04.01.2011 / 22:50

2 respostas

2

Você pode adicionar as ligações nos arquivos de inicialização:

/usr/share/fish/config.fish
/etc/fish/config.fish
~/.config/fish/config.fish

Por exemplo, você pode adicionar a seguinte função:

function __fish_less
       commandline -i -- "|less"
end

bind \ey __fish_less

Um exemplo:

link

EDITAR:

A partir da documentação da shell de peixe:

Initialization files On startup, fish evaluates the files /usr/share/fish/config.fish (Or /usr/local/fish... if you installed fish in /usr/local), /etc/fish/config.fish (Or ~/etc/fish/... if you installed fish in your home directory) and ~/.config/fish/config.fish (Or any other directory specified by the $XDG_CONFIG_HOME variable), in that order. The first file should not be directly edited, the second one is meant for systemwide configuration and the last one is meant for user configuration. If you want to run a command only on starting an interactive shell, use the exit status of the command 'status --is-interactive' to determine if the shell is interactive. If you want to run a command only when using a login shell, use 'status --is-login' instead.

Examples:

If you want to add the directory ~/linux/bin to your PATH variable when using a login shell, add the following to your ~/.config/fish/config.fish file:

if status --is-login set PATH $PATH ~/linux/bin end

If you want to run a set of commands when fish exits, use an event handler that is triggered by the exit of the shell:

function on_exit --on-process %self echo fish is now exiting end

Universal variables are stored in the file .config/fish/fishd.HOSTNAME, where HOSTNAME is the name of your computer. Do not edit this file directly, edit them through fish scripts or by using fish interactively instead.

Então, você deve editar o ~ / .config / fish / config.fish, sair (ou re-source o config.fish) e, finalmente, você deve ter suas "ligações personalizadas".

Eu gentilmente aconselho você a ler toda a documentação e tocar um pouco com a concha, nada que eu escrevi aqui não vem do documento.

Então, se não funcionar, volte aqui com logs (sempre que disponíveis), arquivos de configuração, depuração saída e assim por diante.

    
por tmow 04.01.2011 / 23:49
0

De acordo com esta pergunta , parece que você precisa editar / criar o arquivo ~/.config/fish/functions/fish_user_key_bindings.fish e, por exemplo, para colocar lá algo como:

function my_func
  echo hello
end

function fish_user_key_bindings
  bind \eg my_func
end
    
por Ikar Pohorský 07.10.2016 / 12:18