루트 권한이 있는 사용자로 Vim을 시작하세요

루트 권한이 있는 사용자로 Vim을 시작하세요

내 사용자 정의 Vim 파일은 에 있고 ~/.vim설정은 에 있습니다 . 그러나 때로는 일부 파일 등을 ~/.vimrc편집해야 합니다 . Vim을 다음과 같이 시작하면:/etc

$ sudo vim /etc/rc.conf

Vim은 기본 구성을 사용하기 때문에 구성이 손실되었습니다. 그래서: 사용자 설정(내 홈 디렉터리에 있음)을 잃지 않고 파일을 편집하기 위해 루트 권한으로 Vim을 실행하려면 어떻게 해야 할까요?
나는 시도했다:

$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"

하지만 Bash는 나에게 그것을 주었다 Permission denied. 그러나 위 명령은 예를 들어 작동합니다 /etc/acpi/handler.sh. 왜 그런 겁니까?

노트:사용자 이름루트가 아닙니다.

답변1

또는 를 sudo vim /etc/rc.conf사용하는 대신 EDITOR 환경 변수를 vim으로 설정해야 할 수도 있습니다. 그러면 일반 사용자로서 일반 구성을 사용하여 파일 복사본에 대해 vim 자체가 실행되며, 종료할 때 해당 파일이 다시 복사됩니다.sudoedit /etc/rc.confsudo -e /etc/rc.conf

답변2

-u를 사용하여 vim에게 어떤 rc 파일을 로드할지 알릴 수 있습니다 . 예를 들어

sudo vim -u ~user/.vimrc /etc/rc.conf

매번 이것을 입력해야 하는 것이 지루하다면 별칭을 만드십시오.

alias sudovim='sudo vim -u ~user/.vimrc'

vim -u$HOME과 관련된 다른 파일을 로드하는 경우 플러그인 또는 rc 파일 호출이 실패할 수 있습니다. 이제 $HOME은 사용자의 홈 디렉토리가 아니라 루트의 홈 디렉토리입니다 . 이 문제는 루트 디렉터리의 심볼릭 링크를 사용하거나 절대 경로를 하드코딩하여 해결할 수 있습니다.

답변3

sudo vim -S /home/user/.vimrc /etc/rc.conf

이는 다음과 같습니다.

sudo vim /etc/rc.conf+:source /home/user/.vimrc

또한 별칭을 사용할 수도 있습니다.

alias svim='sudo vim -S /home/user/.vimrc'

관련 정보