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
이제 에서 vim.desktop 파일을 생성해야 합니다 /usr/share/applications
. 이 파일은 원하는 터미널 에뮬레이터를 실행하고 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
TL;DR
$ xdg-mime default vim.desktop <MIMETYPE>
아니면 편집하세요 ~/.config/mimeapps.list
.
MIMETYPE은 다음의 출력입니다.$ xdg-mime query filetype <interested-file>
일부 데스크탑 환경(KDE, GNOME, LXQT 등)을 사용하는 경우 DE 문서를 참조해야 합니다. 그러나 거기에는XDG 표준특정 MIME 유형에 대한 기본 애플리케이션을 설정합니다. MIME 유형은 한 유형의 파일을 다른 유형과 구별하는 방법입니다(Wikipedia 참조).아치위키. 예를 들어 파일과 파일 에 대한 text/html
MIME 유형이 있습니다 . 를 사용하여 MIME 유형을 결정할 수 있습니다 .*.html
text/plain
*.txt
$xdg-mime query filetype <file_you_interested>
MIME 유형은 애플리케이션을 열어야 하는 파일과 애플리케이션을 연결하는 데 사용됩니다. 내 컴퓨터에서
Open ~/.config/mimeapps.list
wich는 다음과 같이 보입니다.
[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
(필요한 경우 다른 MIME 유형을 추가하세요)
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 데스크탑 항목 사양의 규칙에 따라 이 줄은 런처가 터미널 에뮬레이터를 열어야 함을 의미하며, 그런 다음 이 터미널 창에서 앱을 열어야 합니다( Exec
줄). 그렇죠?
그러나xdg-open의 5년 된 버그그리고 xdg-open은 Terminal
기본 터미널 에뮬레이터에 대한 사양이 없기 때문에 키를 무시합니다.
(그들은 노력했다, 하지만 2020년에는 아직 스펙이 없습니다. )
따라서 DE를 사용하지 않는 경우 xdg-open은 데스크탑 입력 사양을 존중하지 않습니다. 버그를 채운 사람이 $TERMINAL 변수를 살펴보고 터미널 에뮬레이터를 여는 패치(슬프게도 무시됨)를 만들었으므로 /usr/bin/xdg-open(또는 $ which xdg-open
)을 패치할 수 있습니다.
스크립트를 직접 변경하고 싶지 않은 경우 xdg-open
몇 가지 해결 방법을 사용할 수 있습니다.
( 시스템에
gvim.desktop
있는 경우 ) 또는 (qt front-end for )을 사용할 수 있습니다 .gvim
nvim-qt.desktop
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
소스 코드를 읽고 DE를 사용하고 있다고 생각하고 DE 특정 도구를 호출하도록 시스템을 조정할 수xdg-open
있지만 이상하다고 생각합니다.
유용한 링크:
XDG-mime 매뉴얼 페이지 -https://linux.die.net/man/1/xdg-mime
XDG MIME 유형에 대한 아치 위키 -https://wiki.archlinux.org/index.php/XDG_MIME_Applications
XDG 데스크탑 항목에 대한 아치 위키 -https://wiki.archlinux.org/index.php/Desktop_entries#Application_entry
xdg-open 문제 -https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/84