Estou usando o fish como meu shell no Debian e recentemente (após algumas atualizações) sempre que tento usar a conclusão de comandos, tenho:
set: No such file or directory
set: Could not add component /usr/lib/x86_64-linux-gnu/libfm to PATH.
set: No such file or directory
Executando isso:
echo $PATH
Dá-me isto:
/usr/lib/x86_64-linux-gnu/libfm /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
No meu sistema, não há /usr/lib/x86_64-linux-gnu/libfm
, então eu entendo por que o peixe está reclamando, mas não consigo encontrar como remover esse caminho da minha $PATH
variável.
Alguém sabe como posso fazer isso?
shell
path
environment-variables
fish
tomekK
fonte
fonte
grep -R /usr/lib/x86_64-linux-gnu/libfm ~/.config/fish /usr/share/fish
??Respostas:
A maneira 'fish' de definir a variável $ PATH é realmente usar
set --universal fish_user_paths $fish_user_paths /new/path/here
. Então $ fish_user_paths é realmente anexado à variável $ PATH quando uma nova sessão é iniciada. A documentação do $ PATH atualmente não diz como excluí-lo.No peixe, toda variável é realmente uma lista (matriz), e você pode acessar convenientemente cada item diretamente usando um índice / índice.
echo $fish_user_paths
imprimirá uma versão delimitada por espaço de cada item da lista, criará uma nova linha de espaços com a função de conversãoecho $fish_user_paths | tr " " "\n"
e depois colocará números de linhas nela com a função de linhas numéricasecho $fish_user_paths | tr " " "\n" | nl
,. Em seguida, exclua-o comset --erase --universal fish_user_paths[5]
. Você deve usar--universal
ou ele não funcionará em nenhuma nova sessão.Se alguém tiver tempo, envie um PR ao repositório com este exemplo. Abri um problema aqui .
tldr;
echo $fish_user_paths | tr " " "\n" | nl
// obtém o número do que você deseja excluir, por exemplo, o quintoset --erase --universal fish_user_paths[5]
// apaga o quinto caminho universalmente para que persista em novas sessõesfonte
Como Elias diz, a melhor prática é modificar
fish_user_paths
o global e não o globalPATH
. Para evitar ter que pesquisar no Google novamente ...fish_user_paths
Para adicionar aos caminhos do usuário:
Para remover um caminho do usuário, se existir (crédito parcial para isso ):
E, é claro, para fazê-los carregar automaticamente :
Exemplo de uso:
fonte
Isso deve apagar os caminhos 6 até o último caminho:
A bandeira -e é apagada. Veja
help set
.fonte