Bash의 "편집기" 명령은 무엇입니까?

Bash의 "편집기" 명령은 무엇입니까?

현재 사용자가 즐겨 사용하는 텍스트 편집기를 열 수 있는 명령을 찾고 있습니다. 명령을 사용하여 블로그에 몇 가지 지침을 작성하고 있기 때문입니다. 나는 이와 같은 명령을 기대하고 있었는데 edit그것을 발견했습니다 editor. 저에게는 vim-gtk를 사용하는 터미널에서 vim을 실행합니다. 나는 편집자가 vim-gtk를 사용하도록 하는 방법을 찾기 시작했고,이것환경 변수 문제를 설명하고 있지만 $EDITOR이것이 명령과 관련이 있는지 확실하지 않습니다 editor. 나는 그것을 시도했지만 man editorvim 매뉴얼 페이지가 표시되었습니다.

editor선택한 텍스트 편집기를 어떻게 사용합니까 , 아니면 다른 명령을 사용해야 합니까?

답변1

이것은 데비안주의입니다(따라서 우분투, 민트 등에 존재합니다). 그들은 이라는 링크를 설정했습니다 editor. 다음과 같이 역추적할 수 있습니다.

$ which editor
/usr/bin/editor

$ ls -l /usr/bin/editor 
lrwxrwxrwx 1 root root 24 Nov 24 19:10 /usr/bin/editor -> /etc/alternatives/editor

$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Nov 24 19:46 /etc/alternatives/editor -> /usr/bin/vim.gnome

$ ls -l /usr/bin/vim.gnome
-rwxr-xr-x 1 root root 2403392 Oct 26  2012 /usr/bin/vim.gnome

editor따라서 이것은 실행 파일에 대한 Unix 링크일 뿐이라는 것을 알 수 있습니다 vim.gnome.

사용 editor?

editor나는 이것을 표준으로 간주하는 것이 아니기 때문에 사용자에게 이것을 설정하는 의미 있는 방법을 제공하는 방향으로 갈 것이라고 생각하지 않습니다 .

또한 $EDITOR원하는 것을 가리키도록 환경 변수를 설정할 vim수 있습니다 gedit. 그러나 이 변수는 와 같은 다른 도구 및 이 변수를 사용하도록 특별히 설계된 도구 emacs에서만 사용이 보장됩니다 .sudogitsubversion$EDITOR

구현 아이디어

저는 여러분이 선택한 별칭을 설정하고 사용자에게 $HOME/.bashrc파일을 통해 이를 별칭 X로 사용하거나 파일의 시스템 구성 /etc/profile.d/our_aliases.sh(별칭 X)으로 설정하도록 지시합니다.

또는 시스템이 gedit, , , 등을 제공한다고 사용자에게 말한 다음 설탕 코팅을 gvim제거 하고 이러한 사항을 즉시 가르칠 수도 있습니다.vimemacs

또는 기본 명령과 다양한 작업 수행 방법을 제공하는 /etc/help.txt셸의 명령 help( )을 통해 실행할 수 있는 텍스트 파일을 제공할 수 있습니다 . 이 접근 방식을 사용하면 시간이 지남에 따라 새로운 기능이나 프롬프트로 도움말을 사용자 정의할 수 있으며 단순한 편리한 명령 alias help="less /etc/help.txt"이상의 기능을 제공합니다 .editor

답변2

일부 프로그램에 파일을 편집하라고 지시하면 편집 프로그램을 호출합니다. 환경변수는 직접 설정해야 합니다.

csh 또는 tcsh를 사용하는 경우 쉘 프롬프트에서 다음을 수행하십시오.

setenv EDITOR vim

bash 또는 ksh를 사용하는 경우 다음을 입력하십시오.

EDITOR=vim; export EDITOR

("vim"을 사용하려는 편집기로 바꾸십시오.)

EDITOR이 변수는 일부 애플리케이션에서 편집기를 호출하는 데 기본적으로 필요합니다. VISUAL화면 지향 편집기를 지정하는 또 다른 변수가 있습니다 . 일반적으로 EDITOR변수와 동일한 값 으로 설정하려고 합니다 . 처음에는 EDITORed(라인 기반 편집기)로 설정되고 VISUALvi(화면 기반 편집기)로 설정됩니다.

VISUAL="vim"; export VISUAL
VISUAL="$EDITOR"; export VISUAL  #even better

이렇게 하면 텍스트 편집기를 사용하는 대부분의 Unix 프로그램은 사용자가 설정한 편집기를 사용하게 됩니다. 위 명령을 실행하면 현재 컴퓨팅 세션에 대해서만 기본 편집기가 설정됩니다. 이러한 변경 사항을 영구적으로 적용하려면 위의 적절한 명령을 .login또는 .cshrc파일(csh 또는 tcsh 사용자의 경우) 또는 .profile파일(bash 또는 ksh를 사용하는 경우) 에 넣어야 합니다 .

Emacs를 사용하는 척한다면 또 다른 환경 변수가 있습니다. 는 이며 ALTERNATE_EDITOR, 동일한 효과를 가지지만 옵션을 사용하여 Emacs를 호출할 때 사용됩니다 --alternate-editor.

~에서GNU Emacs 매뉴얼:

이 옵션은 스크립트 내에서 실행할 때 --alternate-editor=command유용합니다 . emacsclientEmacs에 접속할 수 없을 때 실행할 명령을 지정합니다 . emacsclient예를 들어, 다음 환경 변수 설정은 EDITOREmacs가 실행되고 있지 않더라도 항상 편집기를 제공합니다.

EDITOR="emacsclient --alternate-editor vi +%d %s"

답변3

editor환경 변수에 이를 지정 해야 합니다 EDITOR. 다음 명령을 다음 명령에 추가합니다 .profile.

export EDITOR=editor

vim기본 편집기로 원하는 경우 추가할 수 있습니다.

export EDITOR=vim

개인 취향: 환경 변수에서 편집기의 절대 경로 이름을 사용합니다. 예를 들어,

export EDITOR=/usr/bin/vim

답변4

이것이 내가 스크립트에서 사용하는 것입니다:

# Find a suitable text editor
editor="$VISUAL"
[ -z "$editor" ] && editor="$EDITOR"
[ -z "$editor" ] && which editor >/dev/null && editor=editor
[ -z "$editor" ] && which nano   >/dev/null && editor=nano
[ -z "$editor" ] && which vi     >/dev/null && editor=vi
[ -z "$editor" ] && editor=no_editor_found

# Use the editor we found
$editor "$filename"

$editor위의 emacsclient 예제가 작동하는지 확인하기 위해 최종 호출에 따옴표를 넣지 않았습니다 .

editor따라서 항상 마지막 줄에 어떤 값을 설정하는 것이 중요하다고 생각합니다.의도치 않게 수행될 수 있음 $파일이름. 제 경우에는 를 선택했는데 , or 거기도 no_editor_found동일하게 사용하실 수 있습니다 .picoed

관련 정보