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