루트 (`sudo vim`)시 설정 및 플러그인?


15

파일을 루트로 편집하고 사용해야 할 때 정말 실망스럽고 sudo vim somefile.conf키 바인딩과 설정 및 플러그인을 사용할 수 없습니다.

루트로 편집해야 할 때 모든 사용자 정의를 얻는 방법이 있습니까?

플러그인에 vim-plug를 사용하고 있습니다.


5
참고 사항 : (환경 변수를 설정 한 경우) sudo vim file로 작성하는 것이 좋습니다 . sudo -e fileEDITOR=vim
lcd047

@ lcd047 : 당신은 그 의견을 답변으로 만들어야합니다
static_rtti

답변:


15

vim을 루트로 열지 않고 티로 리디렉션하여 루트로 저장할 수 있습니다. 예를 들면 다음과 같습니다.

:w !sudo tee % > /dev/null

이것은 .vimrc의 별칭에 유용 할 수 있습니다 :Sw.

command! -nargs=0 Sw w !sudo tee % > /dev/null

4
이것은에 유용 I did a bunch of editing and then realized I should have used sudoedit하지만 일반적인 경우에는 sudo -e/ 사용을 제안 sudoedit합니다.
jamessan

7

두가지:

  1. $ sudo -e file로 편집 file하는 데 사용하십시오 $EDITOR. 아직 설정되지 않은 export EDITOR=/path/to/vim경우 추가하십시오 $EDITOR.

  2. 가는 바닐라는 플러그인 중독과 싸우는 훌륭한 방법입니다.


플러그인 중독 회복을 제안하기위한 -1 (J / K, 실제로
공감대 아님

3
이것은 vim을 루트처럼 실행하지 않습니다 sudo vim. 편집은 일반 사용자로 수행 된 다음 sudo가 원본 파일 업데이트를 처리합니다.
jamessan

참고 : 두 개의 유사한 옵션에 있습니다 sudo: -E-e. -E"프리 서버 환경"을 의미하며 원하는 환경이 아닙니다. -e이는 "명령을 실행하지 말고 정의 된 프로 시저로 파일을 편집하십시오"를 의미합니다.
iksemyonov

3

그것은 당신이해야 할 일은 symlink root ~/.vimrc~/.vim/당신의 것입니다.

루트로 실행하십시오.

ln -s /home/<user>/.vimrc /root/.vimrc
ln -s /home/<user>/.vim/ /root/.vim/

그리고 그렇게해야합니다!

(PS 나는 지금 이것을 알아 냈고 다른 멍청한 놈들과 공유하고 싶었습니다. 더 좋은 방법이 있는지 알려주십시오.)


1
이로 인해 일부 vim 관련 파일이 홈 디렉토리에 루트로 작성되고 나중에 자신의 vim 구성을 자신의 사용자로 실행하는 중에 오류가 발생하는 문제가 발생할 수 있습니다.
Caleb

0

미리 루트로 파일을 편집해야한다는 것을 알고 있다면 명령을 사용 sudoedit <file>하거나 sudo -e <file>일반적인 편집기 환경 설정을 사용하여 특수 환경에서 설정하십시오. 파일의 사본이 작성되고 편집기가 실행되어 사용자로 편집됩니다. 파일을 종료하면 루트로 원래 위치로 다시 복사됩니다.

이것이 가장 안전하고 권장되는 방법이지만 a) 미리 인식하지 못하거나 루트로 작성해야하거나 b) 변경 사항을 내부에서 편집하고 저장하려는 경우 다른 것이 필요합니다. 이를 위해 sudo tee smpl제안한 솔루션 이 올바른 길을 가고 있지만 가장자리를 처리하기 위해 약간의 개선 사항이 있습니다. 특히 GUI와 콘솔 인터페이스에서 sudo 비밀번호 프롬프트를 처리 할 때의 차이점은 주목할 가치가 있습니다.

이것을 설정하는 가장 쉬운 방법은 vim-eunuch 플러그인 을 사용하는 것 입니다. 이 특별한 문제가 있으며 몇 가지 다른 편리한 것들이 편리한 패키지로 롤업되었습니다. 사용법은 호출하는 것만 큼 간단합니다 :SudoWrite. 나는 약간 더 편리한 액세스 매핑을 사용합니다.

cmap w!! call SudoWrite()

그러면를 사용하여 모든 파일을 루트로 작성할 수 있습니다 :w!!.


-1

또 다른 옵션은 sudo -E vim somefile.conf편집 을 위해 실행 하는 것인데,이 환경은 환경을 보존하므로 귀하 .vimrc와 플러그인이 사용됩니다.


이봐, 좋은 트릭! 그것은 Vi와 다른 많은 명령에 유용합니다.
Robbie Wxyz 2016 년

3
이것은 구성을 루트의 홈 디렉토리에 연결하는 것과 같은 부작용이 있습니다. 즉 상태 데이터를 작성하는 vim 작업 또는 플러그인은 홈 디렉토리에서 그렇게합니다. 이 파일은 루트가 소유하게되며 나중에 일반 사용자가 계속 사용할 수 없으므로 오류가 발생합니다.
Caleb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.