vi 또는 emacs 입력을 사용하고 있는지 어떻게 알 수 있나요?

vi 또는 emacs 입력을 사용하고 있는지 어떻게 알 수 있나요?

크래시 쉘을 사용하면 명령줄 편집 모드를 vi 또는 emacs로 지정할 수 있습니다.

이러한 입력 방법의 차이점은 무엇입니까?

내부 기능에 대해 묻는 것이 아닙니다.

답변1

를 통해 설정을 찾을 수 있습니다 set -o.

이를 효과적으로 설정하면 명령줄 기록 및 명령 편집 작업 방식의 일부 속성이 변경됩니다. 사용자에게 친숙한 명령 동작을 제공하기 때문에 해당 편집기의 이름을 따서 명명되었습니다. vi 모드에서는 기본값이 insert이므로 평소처럼 명령을 편집할 수 있습니다. 그러나 누르면 모드 <escape>로 들어갑니다 command. 여기서 일반적인 vi 명령을 사용할 수 있습니다.

  • b한 마디라도 뒤로 물러나게 만들 거야
  • w당신을 앞으로 나아가게 만드는 한마디
  • 0명령줄의 시작 부분으로 이동합니다.
  • $명령줄 끝으로 이동합니다.
  • k이전 명령으로 이동합니다
  • j다음 명령으로 이동합니다
  • ?이전 명령을 검색할 수 있습니다
  • d0커서부터 명령 시작 부분까지 삭제됩니다.

편집( 모드)으로 돌아가려면 insert다음 방법 중 하나를 사용하십시오. 줄 I, 커서 아래, 커서 뒤 또는 줄 끝에 첫 번째 단어의 시작 부분을 삽입하십시오.iaA

모드 의 경우 emacsemacs를 편집하는 동안( 없이) 명령을 사용할 수 있습니다 insert mode. vi 모드와 유사한 명령은 다음과 같습니다.

  • <meta-b>한 마디라도 뒤로 물러나게 만들 거야
  • <meta-f>당신을 앞으로 나아가게 만드는 한마디
  • <ctrl-a>명령줄의 시작 부분으로 이동합니다.
  • <ctrl-e>명령줄 끝으로 이동합니다.
  • <ctrl-p>이전 명령으로 이동합니다
  • <ctrl-n>다음 명령으로 이동합니다
  • <ctrl-r>이전 명령을 검색합니다.
  • <ctrl-u>커서부터 명령 시작 부분까지 삭제됩니다.

원래 제어 시퀀스를 삽입하려면(emacs 명령을 처리하는 대신) continue the 시퀀스를 사용하십시오 <ctrl-v>. 어떤 것을 사용하는지는 독자의 연습 문제로 남겨둡니다. :) 두 모드 모두 사용 가능합니다.훨씬 더내가 나열한 것보다 더 많은 명령이 있습니다. (자세한 내용은 각 편집기의 설명서를 참조하세요!)

관련 정보