![Establecer la aplicación xdg-open predeterminada en el programa terminal](https://rvso.com/image/36030/Establecer%20la%20aplicaci%C3%B3n%20xdg-open%20predeterminada%20en%20el%20programa%20terminal.png)
¿Es posible utilizar terminal vim con xdg-open?
No tengo un editor de texto GUI porque solo uso vim a través de la terminal. (Tampoco me importa mucho gvim). ¿Es posible decirle a xdg-open que abra una terminal y luego abra vim con el archivo seleccionado?
Gracias.
Respuesta1
Ya sea en su .bashrc o .zshrc, dependiendo de si usa bash o zsh respectivamente, exporte estas dos variables de entorno:
export EDITOR=vim
export VISUAL=vim
Además, es posible que desees asociar vim al tipo MIME de archivos de texto:
xdg-mime default vim.desktop text/plain
Ahora tendrás que crear un archivo vim.desktop en /usr/share/applications
, que deberá ejecutar el emulador de terminal que desees, abriendo vim.
Respuesta2
Tengo que agregar una nueva respuesta, incluso si mi comentario solo completa la respuesta althiagowfx, porque en los comentarios no se puede sangrar el código.
El contenido de vim.desktop
puede ser algo como esto:
[Desktop Entry]
Name=Vim Text Editor
Comment=Edit text files
Exec=vim
Terminal=true
Type=Application
Icon=terminal
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/plain;
Prefiero ponerlo debajo ~/.local/share/applications
.
Respuesta3
TL;DR
$ xdg-mime default vim.desktop <MIMETYPE>
O editar ~/.config/mimeapps.list
.
MIMETYPE es la salida de$ xdg-mime query filetype <interested-file>
Si está utilizando algún entorno de escritorio (KDE, GNOME, LXQT, etc.), debe consultar la documentación de su DE. Pero existe elestándar XDGpara configurar aplicaciones predeterminadas para tipos mime específicos. El tipo Mime es una forma de distinguir un tipo de archivo de otro, ver en Wikipedia, oarchwiki. Por ejemplo, existe text/html
el tipo mime para *.html
archivos y text/plain
para *.txt
archivos. Puede determinar el tipo mime con $xdg-mime query filetype <file_you_interested>
.
Los tipos Mime se utilizan para vincular aplicaciones con archivos que estas aplicaciones deberían abrir.
Abierto ~/.config/mimeapps.list
que se parece a esto en mi máquina:
[Default Applications]
x-scheme-handler/http=firefox.desktop
...
inode/directory=org.gnome.Nautilus.desktop
[Added Associations]
application/x-shellscript=nvim-qt.desktop;
...
application/pdf=firefox.desktop;
Añadir a la [Default Applications]
sección estas líneas
text/plain=vim.desktop
text/markdown=vim.desktop
text/html=vim.desktop
(Agregue otros tipos mime, si los necesita)
vim.desktop
es el archivo /usr/share/applications
con el siguiente contenido en mi máquina:
[Desktop Entry]
Name=Vim
TryExec=vim
Exec=vim %F
Terminal=true
Type=Application
Keywords=Text;editor;
Icon=gvim
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
(Realmente hay muchas traducciones de nombres y comentarios, pero aquí no importan)
Mira la línea Terminal=true
.
Según las reglas de la Especificación de entrada de escritorio XDG, esta línea dice que el iniciador debe abrir el emulador de terminal y luego, en esta ventana de terminal, debe abrirse su aplicación ( Exec
línea). Bien, ¿sí?
Sin embargo, hay unerror de cinco años en xdg-openy xdg-open ignorar Terminal
la clave porque no hay ninguna especificación para el emulador de terminal predeterminado.
(Ellos intentaron, pero en 2020 aún no hay especificaciones. )
Entonces, si no usa DE, xdg-open no respeta las especificaciones de entrada de escritorio. La persona que llenó el error había creado un parche (que fue ignorado, lamentablemente), que analiza la variable $TERMINAL y abre el emulador de terminal, para que pueda parchear su /usr/bin/xdg-open (o $ which xdg-open
).
Si no desea cambiar xdg-open
el script usted mismo, puede utilizar algunas soluciones:
Puede usar
gvim.desktop
(si lo tuvieragvim
en su sistema) onvim-qt.desktop
(qt front-end paraneovim
).Puede crear un archivo con algún nombre como
my-vim.desktop
el siguiente contenido:
[Desktop Entry]
Type=Application
Name=MyVim
Exec=<COMMAND TO RUN YOUR TERMINAL> vim %F
Terminal=false
Icon=gvim
Categories=Utility;TextEditor
Y colóquelo en ~/.local/share/applications
.
El comando para ejecutar su terminal se puede obtener desde la página del manual del terminal preferido (por ejemplo, gnome-terminal -e
).
Más detalles en Especificaciones de entrada de escritorio.
- De alguna manera puedes leer el
xdg-open
código fuente y modificar tu sistema para quexdg-open
piense que estás usando DE y llames a herramientas específicas de DE, pero creo que es extraño.
Enlaces útiles:
página del manual de XDG-mime -https://linux.die.net/man/1/xdg-mime
Arch wiki sobre los tipos mime XDG -https://wiki.archlinux.org/index.php/XDG_MIME_Applications
Arch wiki sobre la entrada de XDG Desktop -https://wiki.archlinux.org/index.php/Desktop_entries#Application_entry
Problema abierto xdg -https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/84