파일을 루트로 편집하고 사용해야 할 때 정말 실망스럽고 sudo vim somefile.conf
키 바인딩과 설정 및 플러그인을 사용할 수 없습니다.
루트로 편집해야 할 때 모든 사용자 정의를 얻는 방법이 있습니까?
플러그인에 vim-plug를 사용하고 있습니다.
파일을 루트로 편집하고 사용해야 할 때 정말 실망스럽고 sudo vim somefile.conf
키 바인딩과 설정 및 플러그인을 사용할 수 없습니다.
루트로 편집해야 할 때 모든 사용자 정의를 얻는 방법이 있습니까?
플러그인에 vim-plug를 사용하고 있습니다.
답변:
vim을 루트로 열지 않고 티로 리디렉션하여 루트로 저장할 수 있습니다. 예를 들면 다음과 같습니다.
:w !sudo tee % > /dev/null
이것은 .vimrc의 별칭에 유용 할 수 있습니다 :Sw
.
command! -nargs=0 Sw w !sudo tee % > /dev/null
I did a bunch of editing and then realized I should have used sudoedit
하지만 일반적인 경우에는 sudo -e
/ 사용을 제안 sudoedit
합니다.
두가지:
$ sudo -e file
로 편집 file
하는 데 사용하십시오 $EDITOR
. 아직 설정되지 않은 export EDITOR=/path/to/vim
경우 추가하십시오 $EDITOR
.
가는 바닐라는 플러그인 중독과 싸우는 훌륭한 방법입니다.
sudo vim
. 편집은 일반 사용자로 수행 된 다음 sudo가 원본 파일 업데이트를 처리합니다.
sudo
: -E
와 -e
. -E
"프리 서버 환경"을 의미하며 원하는 환경이 아닙니다. -e
이는 "명령을 실행하지 말고 정의 된 프로 시저로 파일을 편집하십시오"를 의미합니다.
그것은 당신이해야 할 일은 symlink root ~/.vimrc
와 ~/.vim/
당신의 것입니다.
루트로 실행하십시오.
ln -s /home/<user>/.vimrc /root/.vimrc
ln -s /home/<user>/.vim/ /root/.vim/
그리고 그렇게해야합니다!
(PS 나는 지금 이것을 알아 냈고 다른 멍청한 놈들과 공유하고 싶었습니다. 더 좋은 방법이 있는지 알려주십시오.)
미리 루트로 파일을 편집해야한다는 것을 알고 있다면 명령을 사용 sudoedit <file>
하거나 sudo -e <file>
일반적인 편집기 환경 설정을 사용하여 특수 환경에서 설정하십시오. 파일의 사본이 작성되고 편집기가 실행되어 사용자로 편집됩니다. 파일을 종료하면 루트로 원래 위치로 다시 복사됩니다.
이것이 가장 안전하고 권장되는 방법이지만 a) 미리 인식하지 못하거나 루트로 작성해야하거나 b) 변경 사항을 내부에서 편집하고 저장하려는 경우 다른 것이 필요합니다. 이를 위해 sudo tee
smpl 이 제안한 솔루션 이 올바른 길을 가고 있지만 가장자리를 처리하기 위해 약간의 개선 사항이 있습니다. 특히 GUI와 콘솔 인터페이스에서 sudo 비밀번호 프롬프트를 처리 할 때의 차이점은 주목할 가치가 있습니다.
이것을 설정하는 가장 쉬운 방법은 vim-eunuch 플러그인 을 사용하는 것 입니다. 이 특별한 문제가 있으며 몇 가지 다른 편리한 것들이 편리한 패키지로 롤업되었습니다. 사용법은 호출하는 것만 큼 간단합니다 :SudoWrite
. 나는 약간 더 편리한 액세스 매핑을 사용합니다.
cmap w!! call SudoWrite()
그러면를 사용하여 모든 파일을 루트로 작성할 수 있습니다 :w!!
.
또 다른 옵션은 sudo -E vim somefile.conf
편집 을 위해 실행 하는 것인데,이 환경은 환경을 보존하므로 귀하 .vimrc
와 플러그인이 사용됩니다.
sudo vim file
로 작성하는 것이 좋습니다 .sudo -e file
EDITOR=vim