sudo visudo 일 때 기본 편집기 변경


23

수행 할 때 sudo visudo기본 편집기는 nano입니다. 또는
로 변경하고 싶습니다 . vivim

이미 만들어진 vim기본 편집기를하고 대용으로 사용 gedit재치로 오픈 PHP, .txt 인,이 .c 및 .H 파일 vim.desktop에 파일을 ~/.local/share/applications/올바르게 중 하나를 편집 ~/.local/share/applications/mimeapps.list또는 /etc/gnome/defaults.list. 그러나 분명히 이것은 적용되지 않습니다 nano.

어떤 단서?


확인 man visudo했습니까?
fkraiem

내가 쓴 이후로 더 많은 것을 발견했습니다. 나중에 더 추가하고 싶습니다. 리눅스 배포는 그것을 다르게 취급합니다.
Volker Siegel

예. env-var VISUAL을 vim으로 설정하고 .bashrc 및 .bash_profile에서 "내 보낸"다음 쉘을 소싱했지만 아무 소용이 없습니다. 심지어 세션에서 로그 아웃했다가 다시 로그인해야합니다.
Cbhihe

2
sudo -E visudo나중에 답변에 추가했습니다 . 그것을 시도 했습니까? -E는 sudo모든 환경 변수를 제거하지 않습니다. 우분투는 라인을 가지고 있기 때문에 수행 Defaults env_reset/etc/sudoers
폴커 시겔

또한 update-alternatives내가 추가 한 것을 시도 했 습니까?
Volker Siegel

답변:


19

문제는 적용 nano되지 않는다는 것이 아니라 쉘에 적용되지 않는다는 것입니다.

VISUAL환경 변수를 설정하십시오 .

export VISUAL=vim

~ / .bashrc도 추가하여 영구적으로 만듭니다.

vim을 일반적으로 사용하는 것처럼, 다음 VISUALEDITOR같이 설정하십시오 :

export VISUAL="vim"
export EDITOR="$VISUAL"

POSIX 이상

VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR

nano하나 또는 두 변수의 값 이라고 가정 합니다.

실제로 visudo에서 편집기를 사용하려면 sudo환경 변수를 정상적으로 유지하지 않는 핸들을 처리해야 합니다. 옵션이 -E변경됩니다.

sudo -E visudo

-E여기가 없으면 기본값이 nano다시 설정 됩니다.


파일명 *.desktop이나 mime*존재 하기 오래 전에 사용 된 두 변수 .
(그리고 인상적인 것은 실제로 공통 표준 으로 사용 된 것입니다 .)
우분투에서는 시스템 기본값이로 설정되어있는 것 같습니다 sudo update-alternatives --config editor. 현재 연결을 변경하는 메뉴가 표시됩니다.


의 섹션 ENVIRONMENT을 참조하십시오 man visudo:

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set

1
해봤 어? 기본적으로 sudo환경에서 실행되는 명령에 대해 대부분의 환경 변수를 설정 해제합니다. VISUAL=vim sudo visudo(그리고 당신이 제안하는 변형)은 나를 위해 작동하지 않으며 작동하지 않아야합니다. sudo VISUAL=vim visudo그래도 작동합니다. 그런데 (난 그냥. 확실하게, 모두 다시 시도했다), VISUAL그리고 EDITOR으로 설정되지 기본적으로 해제됩니다 nano. VISUAL그리고 EDITOR이를 통해 메커니즘없는 visudo선택 nano의 기본 구성은 (한, 제외하고는 그들을 자문, 그들은에있어 해제 또는 공백, 그리고 움직임을 발견한다).
Eliah Kagan

3
그것은 sudo -E visudo분명히 대답해야합니다.
Volker Siegel

+1 저는 훌륭한 답변을받습니다. Volker. "댄스 댄크!" 환경 변수를 전달할 수 없다는 오류 메시지가 여전히 -E 플래그와 함께 표시되지만 제한된 액세스 사용자에서 admin-privilege 및 bingo가있는 사용자로 변경되었습니다! 모두 잘 작동합니다.
Cbhihe

오, 나는 잘못되거나 도움이 될 수있는 것을 하나 더 추가하게되어 기쁘다.) Default/ etc / sudoers에서 옵션 (줄이 있음 ) 을 확인할 수 있습니까? 나는 그것을 금지하는 옵션이 있다고 생각하지만 기본 파일에는 없었습니다.
Volker Siegel

@VolkerSiegel : / etc / sudoers 에서 env_reset 기본값 을 참조한다고 상상해보십시오 . 제 경우에는 그렇게 설정되어 있습니다.
Cbhihe

8

이 답변에 설명 된대로 추가

Defaults editor=/path/to/editor

받는 사람 의 sudoers 파일 .

참고 : 이것은 편집중인 파일에 Defaults editor=/path/to/editor행이 포함되어 있거나 파일을 포함하는 파일이 포함 된 경우에만 작동 합니다.

예를 들어 : visudo -f /etc/sudoers.d/my_sudoers_extension기본값은 Nano입니다.


2
+1 : 좋은 것이었고, 처음이 스레드를 시작할 때 알아 채지 못했습니다. 감사합니다.
Cbhihe

3

나노를 사용하지 않으려는 경우 간단히 제거 할 수도 있습니다. 그러면 시스템은 vi / vim을 기본값으로 사용합니다.

sudo apt-get purge nano

나는 그것이 공식적인 대답이 아니라는 것을 알고 있지만 우분투를 설치 한 후 첫 번째 명령 중 하나입니다.


이것은 분명히 "네크로 포스팅"으로 자격이 있지만 우분투를 다루는 것처럼 대답은 흥미 롭습니다. 다른 배포판 (ArchLinux 중 일부)은 1 위를 설치 한 편집기 만 가지고 있으므로 우분투에서 만난 pbm이나 제안 한 측정 방법에 의존 할 필요가 없습니다. 현재의 경우 (우분투 + 나노 + vim), 많은 사람들이 편집자 측면에서 옵션이 필요할 수 있다고 생각합니다. 그것은의 진정한 사람은 거의의 좋아하는 볼 emacsvim적극적으로 어느 한 사용자의 프로필에 공존. 그러나 nanovim야생에서 함께 일 할 ... 계속 nano!
Cbhihe

확실히 가장 좋은 답변
botkop

emacs그리고 vim행복하게 공존 않고 지속적으로 사용된다. nano해충과 마찬가지로 시스템에서 빨리 제거 될수록 좋습니다. 일부 사람들은 편안하다고 생각하지만이 답변은 완벽하게 유효합니다.
mementum
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.