루트 권한을 가진 사용자로 Vim을 시작하십시오.


10

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

$ sudo vim /etc/rc.conf

Vim이 기본 설정을 사용하기 때문에 설정이 손실됩니다. 따라서 루트 권한으로 Vim을 실행하여 사용자 설정 (홈 디렉토리에 있음)을 잃지 않고 파일을 편집하려면 어떻게해야합니까?
나는 시도했다 :

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

그러나 배쉬는 나에게 준다 Permission denied. 그러나 위 명령은 예를 들어 다음과 같이 작동합니다 /etc/acpi/handler.sh. 왜 그런 겁니까?

참고 : username 은 루트가 아닙니다.

답변:


15

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


좋은 해결책! 이것도 확인하겠습니다.
rubik

시도 sudoedit /etc/rc.conf하고 sudo -e /etc/rc.confvim을 열지 만 ~ / .vimrc 가로 드되지 않습니다. 내가 뭘 잘못하고 있니?
장치

@apparat export EDITOR=vim먼저 시도하십시오 -실행하려고 할 수 있습니다 .vimrc 인 vi경우에도 vimrc를로드하는지 알 수 없습니다.
Random832

글쎄, 이것이 최선의 대답이라고 생각합니다. 둘 다 감사합니다.
rubik

@ Random832가 export EDITOR=vim효과가있었습니다. vi가 시스템에 설치되어 있지 않으며 vim에 대한 심볼릭 링크라고 생각했습니다. 감사합니다
장치

6

-uvim에게로드 할 rc 파일을 알려주 는 데 사용할 수 있습니다 . 예 :

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

필요할 때마다 입력하는 것이 지루한 경우 별명을 만드십시오.

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

참고 vim -u가 $ HOME에 상대적으로 다른 파일을로드 할 경우 실패 할 플러그인이나라는 RC 파일을 일으킬 수는 - $ 홈 지금 루트의 홈 디렉토리가 아닌 사용자의입니다. 이것은 루트의 홈 디렉토리에있는 심볼릭 링크 나 하드 코딩 된 절대 경로로 해결할 수 있습니다.


훌륭합니다, 감사합니다. 나는 다음과 같이 해결했다 alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc".
rubik

1

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'

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.