Estoy usando fish como mi shell en Debian y recientemente (después de alguna actualización) cada vez que intento usar la finalización de comandos tengo:
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
Ejecutando esto:
echo $PATH
Me da esto:
/usr/lib/x86_64-linux-gnu/libfm /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
En mi sistema no existe /usr/lib/x86_64-linux-gnu/libfm
, así que entiendo por qué el pez se queja, pero no puedo encontrar cómo eliminar esta ruta de mi $PATH
variable.
¿Alguien sabe cómo puedo hacer esto?
shell
path
environment-variables
fish
tomekK
fuente
fuente
grep -R /usr/lib/x86_64-linux-gnu/libfm ~/.config/fish /usr/share/fish
??Respuestas:
La forma 'pez' de establecer la variable $ PATH es usarla realmente
set --universal fish_user_paths $fish_user_paths /new/path/here
. Entonces $ fish_user_paths en realidad se antepone a la variable $ PATH cuando comienza una nueva sesión. Sin embargo, la documentación de $ PATH actualmente no le dice cómo eliminarla.En fish, cada variable es en realidad una lista (matriz), y puede acceder convenientemente a cada elemento directamente utilizando un índice / índice.
echo $fish_user_paths
imprimirá una versión del espacio delimitado cada elemento de la lista, hacen que los espacios de nueva línea con la función de traducirecho $fish_user_paths | tr " " "\n"
y luego poner los números de línea en él con el número de función líneas,echo $fish_user_paths | tr " " "\n" | nl
. Luego bórrelo conset --erase --universal fish_user_paths[5]
. Debe usar--universal
o no funcionará en ninguna sesión nueva.Si alguien tiene tiempo, envíe un PR al repositorio con este ejemplo. Abrí un problema aquí .
tldr;
echo $fish_user_paths | tr " " "\n" | nl
// obtén el número del que deseas eliminar, por ejemplo, el quintoset --erase --universal fish_user_paths[5]
// borra la 5ta ruta universalmente para que persista en nuevas sesionesfuente
Como dice Elijah, la mejor práctica es modificar
fish_user_paths
lo global en lugar de lo globalPATH
. Para evitar tener que volver a Google esto de nuevo ...fish_user_paths
Para agregar a rutas de usuario:
Para eliminar una ruta de usuario si existe (crédito parcial a esto ):
Y, por supuesto, para que se carguen automáticamente :
Ejemplo de uso:
fuente
Esto debería borrar las rutas 6 a través de la última ruta:
La bandera -e está borrada. Ver
help set
.fuente