기본 xdg-open 응용 프로그램을 터미널 프로그램으로 설정

기본 xdg-open 응용 프로그램을 터미널 프로그램으로 설정

xdg-open과 함께 터미널 vim을 사용할 수 있습니까?

터미널을 통해서만 vim을 사용하기 때문에 GUI 텍스트 편집기가 없습니다. (저는 gvim도 별로 신경 쓰지 않습니다.) xdg-open에게 터미널을 열고 선택한 파일로 vim을 열도록 지시할 수 있습니까?

감사해요.

답변1

.bashrc 또는 .zshrc에서 각각 bash 또는 zsh를 사용하는지 여부에 따라 다음 두 환경 변수를 내보냅니다.

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몇 가지 해결 방법이 있습니다.

  1. gvim.desktop( gvim시스템에 있는 경우) 또는 nvim-qt.desktop(qt front-end for )을 사용할 수 있습니다 neovim.

  2. 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

  1. xdg-open어떻게든 소스 코드를 읽고 시스템을 조정할 수 있으며 xdg-openDE를 사용하고 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

관련 정보