![Defina o aplicativo xdg-open padrão para o programa de terminal](https://rvso.com/image/36030/Defina%20o%20aplicativo%20xdg-open%20padr%C3%A3o%20para%20o%20programa%20de%20terminal.png)
É possível usar o terminal vim com xdg-open?
Não tenho um editor de texto GUI porque só uso o vim por meio do terminal. (Eu também não me importo muito com o gvim.) É possível dizer ao xdg-open para abrir um terminal e depois abrir o vim com o arquivo selecionado?
Obrigado.
Responder1
Em seu .bashrc ou .zshrc, dependendo se você usa bash ou zsh respectivamente, exporte estas duas variáveis de ambiente:
export EDITOR=vim
export VISUAL=vim
Além disso, você pode querer associar o vim ao tipo MIME dos arquivos de texto:
xdg-mime default vim.desktop text/plain
Agora você terá que criar um arquivo vim.desktop em /usr/share/applications
, que deverá executar o emulador de terminal desejado, abrindo o vim.
Responder2
Tenho que adicionar uma nova resposta, mesmo que meu comentário apenas complete a respostaThiagowfx, porque nos comentários você não pode recuar o código.
O conteúdo de vim.desktop
pode ser algo assim:
[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;
Eu prefiro colocar isso embaixo ~/.local/share/applications
.
Responder3
DR
$ xdg-mime default vim.desktop <MIMETYPE>
Ou edite ~/.config/mimeapps.list
.
MIMETYPE é a saída de$ xdg-mime query filetype <interested-file>
Se você estiver usando algum ambiente de trabalho (KDE, GNOME, LXQT, etc), consulte a documentação do seu DE. Mas existe oPadrão XDGpara definir aplicativos padrão para tipos MIME específicos. Mime-type é uma forma de distinguir um tipo de arquivo de outro, veja na Wikipedia, ouarquiwiki. Por exemplo, existe text/html
o tipo MIME para *.html
arquivos e text/plain
para *.txt
arquivos. Você pode determinar o tipo mime com $xdg-mime query filetype <file_you_interested>
.
Os tipos MIME são usados para vincular aplicativos a arquivos, que esses aplicativos devem abrir.
Abra ~/.config/mimeapps.list
, que se parece com isto na minha 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;
Adicione à [Default Applications]
seção essas linhas
text/plain=vim.desktop
text/markdown=vim.desktop
text/html=vim.desktop
(Adicione outros tipos MIME, se precisar deles)
vim.desktop
está o arquivo /usr/share/applications
com o seguinte conteúdo na minha 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, há muitas traduções de nomes e comentários, mas eles não importam aqui)
Veja a linha Terminal=true
.
Pelas regras da especificação de entrada do XDG Desktop, esta linha diz que o inicializador deve abrir o emulador de terminal, e então nesta janela do terminal deve ser aberto seu aplicativo ( Exec
linha). Tudo bem, sim?
No entanto, existe umabug de cinco anos no xdg-opene xdg-open ignore Terminal
key porque não há especificação para o emulador de terminal padrão.
(Eles tentaram, mas em 2020 ainda não há especificações. )
Portanto, se você não usa DE, o xdg-open não respeita a especificação de entrada da área de trabalho para você. A pessoa que preencheu o bug criou um patch (que foi ignorado, infelizmente), que analisa a variável $TERMINAL e o emulador de terminal aberto, para que você possa corrigir seu /usr/bin/xdg-open (ou $ which xdg-open
).
Se você não quiser alterar xdg-open
o script sozinho, poderá usar algumas soluções alternativas:
Você pode usar
gvim.desktop
(se tivergvim
em seu sistema) ounvim-qt.desktop
(qt front-end paraneovim
).Você pode criar um arquivo com algum nome como
my-vim.desktop
o seguinte conteúdo:
[Desktop Entry]
Type=Application
Name=MyVim
Exec=<COMMAND TO RUN YOUR TERMINAL> vim %F
Terminal=false
Icon=gvim
Categories=Utility;TextEditor
E coloque-o dentro ~/.local/share/applications
.
Comando para executar seu terminal você pode obter na página de manual do terminal preferido (por exemplo, gnome-terminal -e
).
Mais detalhes em Especificações de entrada para desktop.
- De alguma forma, você pode ler o
xdg-open
código-fonte e ajustar seu sistema, quexdg-open
pensará que você está usando DE e chamará ferramentas específicas de DE, mas acho estranho.
Links úteis:
página de manual do XDG-mime -https://linux.die.net/man/1/xdg-mime
Arch wiki sobre tipos mime XDG -https://wiki.archlinux.org/index.php/XDG_MIME_Applications
Arch wiki sobre a entrada do XDG Desktop -https://wiki.archlinux.org/index.php/Desktop_entries#Application_entry
problema xdg-open -https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/84