bash에서`editor` 명령은 무엇입니까?

현재 사용자가 즐겨 사용하는 텍스트 편집기를 열 수있는 명령을 찾고있었습니다. 블로그에 명령과 함께 몇 가지 지침을 작성하고 있기 때문입니다. edit와 같은 명령을 예상했는데 editor를 찾았습니다. 저에게는 vim이 터미널에서 시작되었습니다. 저는 vim-gtk를 사용하고 있습니다. 편집자가 vim-gtk를 사용하도록 만드는 방법을 찾기 시작했고 질문을 발견했습니다. 7fa911a683 “>

환경 변수이지만 editor 명령과 관련이 있는지 확실하지 않습니다. man editor를 시도했습니다. 하지만 Vim 맨 페이지가 표시되었습니다.

editor에서 내가 선택한 텍스트 편집기를 사용하도록하려면 어떻게해야합니까? 아니면 다른 명령을 사용해야합니까?

답변

이것은 Debian-ism입니다 (따라서 Ubuntu, Mint 등에 나타납니다). 링크 콜 ed 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가 유닉스 링크라는 것을 알 수 있습니다. 실행 파일 vim.gnome.

editor를 사용하십니까?

내가 생각하지 않습니다. d 사용자에게 의미있는 방식으로 editor를 설정하는 방향으로 가십시오. 이는 제가 표준으로 간주하는 것이 아니라는 점을 감안할 때입니다.

추가적으로 원하는 항목을 가리키는 $EDITOR 환경 변수, vim, gedit, emacs 등.하지만이 변수는 sudo, gitsubversion는 변수 $EDITOR를 사용하도록 특별히 디자인되었습니다.

구현 아이디어

단순히 원하는 별칭을 설정하고 사용자에게이를 사용할 수 있음을 알려줍니다. $HOME/.bashrc 파일을 통해 별칭 X로 설정하거나 /etc/profile.d/our_aliases.sh 파일의 시스템 구성으로 별칭 X로 설정합니다.

또는 시스템이 gedit, gvim, vim, emacs 등을 사용하여 설탕 코팅을 잘라내어 즉시 이러한 사항에 대해 가르치십시오.

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

댓글

  • 예, 사용자는 편집기가 무엇인지 알 수 있으며 코드 예제를 표시하는 대신 특정 파일을 편집하라고 지시합니다. 저는 코드 예제를 가지고 있었고 ' 제가 약간 현학적 인 태도를 보이고 있다는 사실을 깨닫지 못했습니다. Ubuntu가 ' $EDITOR 변수를 설정하지 않는 것이 ' 너무 나쁩니다. '이 또는 editor 심볼릭 링크에 의존 할 수 없습니다.
  • s/Ubuntu/Debian/g
  • 표준 , 한숨 …

답변

파일 편집을 지시 할 때 일부 프로그램에서 호출하는 편집기 프로그램입니다. 환경 변수를 직접 설정해야합니다.

csh 또는 tcsh를 사용하는 경우 쉘 프롬프트에서 :

setenv EDITOR vim 

사용하는 경우 bash 또는 ksh를 입력하고 다음을 입력합니다.

EDITOR=vim; export EDITOR 

( “vim”을 사용할 편집기로 바꿉니다.)

EDITOR 변수는 일부 응용 프로그램에서 편집기를 호출하기 위해 기본적으로 필요한 변수입니다. 화면 지향 편집기를 지정하는 데 사용되는 VISUAL라는 또 다른 변수가 있습니다. 일반적으로 EDITOR 변수와 동일한 값으로 설정하는 것이 좋습니다. 원래 EDITOR는 ed (라인 기반 편집기)로 설정되고 VISUAL는 vi (화면- 기반 편집기).

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

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

Emacs를 사용하는 척하는 경우 다른 환경 변수도 있습니다. ALTERNATE_EDITOR이며 동일한 효과를 갖지만 --alternate-editor 옵션으로 Emacs를 호출 할 때 사용됩니다.

GNU Emacs 매뉴얼 에서 :

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

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

댓글

  • sh라고 말하면 ' 말이되지 않습니다. sh는 일반적으로 시스템 '의 셸입니다. 이전에는 Thomson 쉘이었고 Bourne 쉘이었고 요즘에는 대부분의 시스템에서 POSIX sh 사양을 구현하는 쉘 또는 다른 쉘이었습니다. export EDITOR=vim 구문은 POSIX이지만 Bourne이나 Thomson이 아닙니다. export VISUAL=$EDITORbash 및 일부 ksh 구현에서 작동합니다. 대부분의 다른 셸에는 export VISUAL="$EDITOR"가 필요합니다. VISUAL=$EDITOR export VISUAL는 Bourne 쉘을 포함한 모든 Bourne 유사 쉘에서 작동합니다.
  • EDITOR 그런 여러 단어 값으로? 그렇다면 which "$EDITOR" 또는 which $EDITOR를 사용하여 있는지 확인할 수 없습니다.

Answer

환경 변수 EDITOR

를 지정해야합니다.

. .profile에 다음 명령을 추가합니다.

export EDITOR=editor 

원하는 경우 vim를 기본 편집기로 대신 추가합니다.

export EDITOR=vim

개인 환경 설정 : 편집기의 절대 경로 이름을 사용합니다. 환경 변수에서. 예 :

export EDITOR=/usr/bin/vim

Answer

editor 명령은 우분투에 따라 다릅니다. 휴대용 또는 일반 (우분투 외부)이 아닙니다. 이 명령은 사용자별로 설정되지 않고 시스템 전체에 설정됩니다. 작동 방식은 /usr/bin/editor가 시스템의 편집기에 대한 심볼릭 링크라는 것입니다. 따라서 모든 사용자에게 동일합니다.

$EDITOR 환경 변수는 상당히 표준입니다. 사용자가 무언가를 편집해야하는 많은 프로그램에서 사용됩니다. 따라서 사용자 편집기를 호출 할 때 사용해야하는 변수입니다.

코멘트

  • 우분투에만 국한되지 않습니다. Debian에서 제공되며 Debian '의 대체 메커니즘을 사용합니다. 모든 Debian 파생 제품에서 사용할 수있는 ', 우분투뿐만 아니라

답변

스크립트에서 사용하고있는 내용입니다.

# 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" 

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

그러므로 editor에 대해 항상 일부 값을 설정하는 것이 중요하다고 생각합니다. 그렇지 않으면 마지막 줄 의도 치 않게 실행될 수 있습니다 $ filename . 제 경우에는 no_editor_found를 선택했지만 동일하게 여기서 pico 또는 ed를 사용하세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다