xdg-openでターミナルvimを使用できますか?
端末を介してのみvimを使用するため、GUIテキストエディタはありません。 (私はgvimもあまり気にしません。)xdg-openに端末を開き、選択したファイルでvimを開くように指示できますか?
ありがとうございます。
答え1
.bashrc または .zshrc でそれぞれ bash または zsh を使用するかどうかに応じて、次の 2 つの環境変数をエクスポートします。
export EDITOR=vim
export VISUAL=vim
また、vimをテキストファイルのMIMEタイプに関連付けることもできます。
xdg-mime default vim.desktop text/plain
/usr/share/applications
これで、必要な端末エミュレータを実行するvim.desktopファイルを作成してvimを開く必要があります。
答え2
私のコメントが次のステップまで回答を完了したとしても、新しい回答を追加する必要があります。ティアゴブケスこれは、コメント内でコードをインデントできないためです。
内容はvim.desktop
次のようになります。
[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;
私はそれを置くことを好む~/.local/share/applications
。
答え3
長い話を短く
$ xdg-mime default vim.desktop <MIMETYPE>
またはMIMETYPEの出力は次のとおりです~/.config/mimeapps.list
。$ xdg-mime query filetype <interested-file>
特定のデスクトップ環境(KDE、GNOME、LXQTなど)を使用している場合は、DEのマニュアルを参照する必要があります。しかし、一つあります。XDG規格特定のMIMEタイプのデフォルトアプリケーションを設定するために使用されます。 MIME形式は、あるファイル形式を他のファイル形式と区別する方法です。 Wikipediaをご覧ください。ウィキペディア。たとえば、text/html
ファイルのMIMEタイプ*.html
とファイルtext/plain
のMIMEタイプがあります。*.txt
を使用してMIMEタイプを決定できます$xdg-mime query filetype <file_you_interested>
。
MIMEタイプは、アプリケーションが開く必要があるファイルとアプリケーションを関連付けるために使用されます。私のコンピュータで
開くと、~/.config/mimeapps.list
次のようになります。
[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;
[Default Applications]
セクションに次の行を追加します。
text/plain=vim.desktop
text/markdown=vim.desktop
text/html=vim.desktop
(必要に応じて他の無言のタイプを追加してください)
vim.desktop
マイコンピュータのファイルには、/usr/share/applications
次の内容が含まれています。
[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++;
(名前やコメントの翻訳が多いのは本当ですが、ここではそれは重要ではありません)
ラインを見てくださいTerminal=true
。
XDG Desktop Portal仕様の規則に従って、この行はランチャーがターミナルエミュレータを開き、アプリケーション(行Exec
)をこのターミナルウィンドウで開く必要があることを示します。とても良い、ハァッか。
しかし、一つがあります5年前 xdg-open のバグそして、xdg-openはTerminal
デフォルトの端末エミュレータの仕様がないため、キーを無視します。
(彼らは努力したしかし、2020年には仕様はありません。 )
したがって、DEを使用しない場合、xdg-openはデスクトップ入力仕様を尊重しません。エラーを書いた人は、$ TERMINAL変数を見て/ usr / bin / xdg-open(または$ which xdg-open
)をパッチできるようにターミナルエミュレータを開くパッチ(残念ながら無視)を作成しました。
スクリプトを直接変更したくない場合は、xdg-open
いくつかの回避策があります。
gvim.desktop
(gvim
システムにいる場合)またはnvim-qt.desktop
(qt front-end for)を使用できますneovim
。my-vim.desktop
たとえば、次の内容を含む名前のファイルを生成できます。
[Desktop Entry]
Type=Application
Name=MyVim
Exec=<COMMAND TO RUN YOUR TERMINAL> vim %F
Terminal=false
Icon=gvim
Categories=Utility;TextEditor
目的の端末(例)のマニュアルページから端末を実行するコマンドを取得できます~/.local/share/applications
。詳細については、デスクトップポータルの仕様を参照してください。gnome-terminal -e
xdg-open
どういうわけかソースコードを読んでシステムを調整することができ、xdg-open
DEを使用してDE固有のツールを呼び出すと思うかもしれませんが、私の考えには奇妙です。
便利なリンク:
XDG-mimeのマニュアルページ -https://linux.die.net/man/1/xdg-mime
XDG MIMEタイプのアーチウィキ -https://wiki.archlinux.org/index.php/XDG_MIME_Applications
XDG Desktop アイテムの Arch wiki -https://wiki.archlinux.org/index.php/Desktop_entries#Application_entry
xdg - 公開問題 -https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/84