sudo vim과 vim은 다른 편집기를 엽니다.

sudo vim과 vim은 다른 편집기를 엽니다.

방금 Fedora 36을 설치했고 자주 사용하는 소프트웨어를 설치하고 있습니다. 저는 개인적으로 vim보다 nvim을 선호하지만 vim을 입력하는 데 alias vim='nvim'익숙 하므로 .bashrc.

nvim을 직접 사용 vim하고 init.vim;를 사용하지만 sudo vim내가 작성한 매핑을 사용하지 않는 것 같습니다. ( 링크 init.vim가 나와 있습니다 ). sudo가 .외에 다른 파일을 사용한다는 것을 읽었 지만 모든 곳에 별칭을 만들고 싶지는 않습니다..vimrcln -s .config/nvim/init.vim .vimrc.bashrc

"목록"에서 nvim을 사용하고 선택하도록 제안하는 몇 가지 sudo update-alternatives --config vim답변을 찾았지만 명령을 실행할 때 어떤 출력도 얻지 못했습니다. 그것은 단지 나에게 새로운 터미널 라인을 제공합니다. "목록"을 반환하는 방법은 무엇입니까 sudo update-alternatives --config vim? 아니면 이것 외에 더 좋은 방법이 있나요 update-alternatives?

답변1

내가 아는 한, sudo는 사용자 ID를 변경하므로 sudo를 사용하여 무언가를 호출하면 일반 사용자를 위해 특별히 수행한 모든 구성이 적용되지 않습니다. sudo를 사용하여 vim을 호출할 때는 적용되지 않습니다). 그 외에도, 내가 아는 한 sudo는 bash용으로 생성한 "별칭"을 읽을 수 없습니다. 즉, alias l=ls;sudo lsudo를 입력하면 명령의 의미를 알 수 없다는 뜻입니다 l.

update-alternatives는 바이너리 연결을 생성하고 처리하는 유용한 도구이므로 시스템에 다른 버전의 vim이 있는 경우 update-alternatives를 사용하여 vim이 호출될 때 호출되는 버전을 변경할 수 있습니다. 대안은 이 플래그를 사용하려는 명령으로 구성할 수 있지만 --config이 플래그를 사용하여 만든 후에만 가능합니다 --install.

다음은 Python에서 이 작업을 수행하는 방법에 대한 튜토리얼입니다.협회.

그러나 이것이 문제를 해결하는 데 어떻게 도움이 될지는 잘 모르겠지만 아마도 대안을 만들어 sudo가 원하는 프로그램을 찾도록 허용할 수 있습니다.

이것이 권장되는지는 잘 모르겠지만 아마도 그렇지 않을 수도 있지만 문제에 대한 간단하고 더러운 해결책은 바이너리의 이름을 바꾸거나 vim이라는 nvim 바이너리에 대한 링크를 만드는 것입니다. 이렇게 하면 모든 환경에서 호출할 때 이 바이너리를 사용하게 됩니다. 하지만 저는 새로운 대안을 배우고 사용하는 것이 더 깨끗하고 내구성이 뛰어난 방법이라고 생각합니다.

개인적으로 저는 sudo를 사용할 때 게으른 접근 방식을 취하고 올바른 바이너리 이름을 입력합니다. 나는 v=vim에 대한 별칭을 가지고 있지만 sudo를 사용할 때 아마도 심각한 일을 하고 있을 것이므로 내가 원하는 것을 정확하게 표현할 수도 있지만 별칭을 어디에서나 사용하려는지 이해할 수 있습니다.

관련 정보