it-swarm-ko.tech

VISUAL vs. EDITOR – 차이점은 무엇입니까?

일반적으로 VISUALEDITOR 환경 변수를 모두 같은 것으로 설정했지만 차이점은 무엇입니까? 왜 다르게 설정해야합니까? 앱을 개발할 때 왜 VISUAL 전에 EDITOR를 보거나 그 반대를 선택해야합니까?

196
xenoterracide

EDITOR 편집기는 "고급"터미널 기능 (예 : ed의 이전 ex 또는 vi 모드)을 사용하지 않고도 작동 할 수 있어야합니다. 텔레타이프 터미널에 사용되었습니다.

VISUAL 편집기는 vi 또는 emacs과 같은 전체 화면 편집기 일 수 있습니다.

예 : bash를 통해 편집기를 호출하는 경우 (C-x C-e), bash는 먼저 VISUAL 편집기를 시도한 다음 VISUAL이 실패하면 (터미널이 전체 화면 편집기를 지원하지 않기 때문에) EDITOR을 시도합니다.

요즘 EDITOR을 설정하지 않은 상태로 두거나 vi -e.

157
andcoz

받아 들여진 대답은 아마도 짧고 좋은 치료법 일 것입니다. 그러나 이것은 VISUAL과 EDITOR의 구별이 여전히 중요 할 때 더 깊이 들어 가려는 시도가 될 것입니다 (- Adam Katz 's answer ).

POSIX 사양은 여전히 ​​비주얼 모드 편집기와 라인 편집기를 구분합니다. 직렬 연결을 통한 커서 위치 지정이 어려웠던 시절 (특히 직렬 연결 속도로 인해)에는 실제로 문제가 발생했습니다. vi에 대한 Wikipedia 기사 는 vi (시각 모드 편집기)와 ex (라인 편집기)의 구별에 대한 유용한 배경을 제공합니다. 연구를 충분히 깊이 파고 들면, "ex"스펙의 "RATIONALE"섹션 을 찾을 수 있는데, 이는 여전히 스펙에 차이가있는 이유를 제공합니다.

Vi의 일부는 불가능하지는 않지만 블록 모드 터미널 또는 커서 주소 지정 형식이없는 터미널에서 만족스럽게 구현하기가 어려울 수 있으므로 이러한 기능이 모든 터미널에서 작동해야하는 필수 요구 사항은 아닙니다. . 그러나 vi 구현은이를 지원할 수있는 모든 터미널에서 전체 기능 세트를 제공해야합니다.

300 보드 모뎀을 포기한 이후로 이것을 필요로하지 않았지만 느린 직렬 회선을 사용하여 임베디드 시스템에 연결하는 사람들 (그리고/또는 실제로는 딕시 연결을 통해) might 여전히 vi와 같은 "시각적"편집기와 구별되는 선호하는 라인 모드 편집기를 가질 수 있다는 점에 감사드립니다. 손실이 많고 느리고 좁은 연결을 통한 VT100 스타일 터미널 코드는 제한된 응용 프로그램에서 "부풀어 질"수 있습니다.

우리 중 나머지 사람들에게는 "올바른"답변이 "둘 다 원하는 편집자로 설정"된 것 같습니다. 로컬/그래픽 편집기 (예 : Sublime 또는 gvim) 대 터미널 창 편집기 (예 : vi 또는 emacs)에 대해이 구별을 선택하는 것이 좋을 수도 있지만, 예상대로 작동하지 않는 레거시 이유가있을 수 있습니다. .

37
robla

나는 $VISUAL은 (는) 그래픽이고 $EDITOR는 명령 행입니다. 정의되지 않은 경우 $VISUAL해야 그런 다음 $EDITOR 다음.

(Citation needed : 적절한 설명서, 맨 페이지 또는 POSIX 사양을 원하십니까?)

현재 내 ~/.bashrc~/.zshrc :

EDITOR="$(command -v vim)"

# we have gvim, not in an SSH term, and the X11 display number is under 10
if command -v gvim >/dev/null 2>&1 \
&& [ "$SSH_TTY$DISPLAY" = "${DISPLAY#*:[1-9][0-9]}" ]; then
  export VISUAL="$(command -v gvim) -f"
  Sudo_EDITOR="$VISUAL"
else
  Sudo_EDITOR="$EDITOR"
fi

gvim없이 -f은 (는) 수정 작업이 필요한 프로그램에서는 작동하지 않습니다. 여기에는 sudoeditor (Sudo -e).

Vim 경로에 공백이 있으면 작동하지 않을 수 있습니다. 문제가있는 경우 올바르게 설치하거나 /usr/local/bin/gvim

3
Adam Katz

일부 도구는 EDITOR 만 허용합니다 (예 : Shell 내장 fc).

-e ENAME  select which editor to use.  Default is FCEDIT, then EDITOR, then vi
2
Steven Penny

Vi 또는 이와 유사한 환경이 실패하는 것처럼 보이지 않기 때문에 VISUAL을 X DISPLAY가 필요한 것으로 설정하고 EDITOR를 ex로 설정했습니다.

대부분의 프로그램은 VISUAL을 사용하지 않을 때 문제를 일으키는 것으로 보입니다.

0