크래시 쉘을 사용하면 명령줄 편집 모드를 vi 또는 emacs로 지정할 수 있습니다.
이러한 입력 방법의 차이점은 무엇입니까?
내부 기능에 대해 묻는 것이 아닙니다.
답변1
를 통해 설정을 찾을 수 있습니다 set -o
.
이를 효과적으로 설정하면 명령줄 기록 및 명령 편집 작업 방식의 일부 속성이 변경됩니다. 사용자에게 친숙한 명령 동작을 제공하기 때문에 해당 편집기의 이름을 따서 명명되었습니다. vi 모드에서는 기본값이 insert
이므로 평소처럼 명령을 편집할 수 있습니다. 그러나 누르면 모드 <escape>
로 들어갑니다 command
. 여기서 일반적인 vi 명령을 사용할 수 있습니다.
b
한 마디라도 뒤로 물러나게 만들 거야w
당신을 앞으로 나아가게 만드는 한마디0
명령줄의 시작 부분으로 이동합니다.$
명령줄 끝으로 이동합니다.k
이전 명령으로 이동합니다j
다음 명령으로 이동합니다?
이전 명령을 검색할 수 있습니다d0
커서부터 명령 시작 부분까지 삭제됩니다.
편집( 모드)으로 돌아가려면 insert
다음 방법 중 하나를 사용하십시오. 줄 I
, 커서 아래, 커서 뒤 또는 줄 끝에 첫 번째 단어의 시작 부분을 삽입하십시오.i
a
A
모드 의 경우 emacs
emacs를 편집하는 동안( 없이) 명령을 사용할 수 있습니다 insert mode
. vi 모드와 유사한 명령은 다음과 같습니다.
<meta-b>
한 마디라도 뒤로 물러나게 만들 거야<meta-f>
당신을 앞으로 나아가게 만드는 한마디<ctrl-a>
명령줄의 시작 부분으로 이동합니다.<ctrl-e>
명령줄 끝으로 이동합니다.<ctrl-p>
이전 명령으로 이동합니다<ctrl-n>
다음 명령으로 이동합니다<ctrl-r>
이전 명령을 검색합니다.<ctrl-u>
커서부터 명령 시작 부분까지 삭제됩니다.
원래 제어 시퀀스를 삽입하려면(emacs 명령을 처리하는 대신) continue the 시퀀스를 사용하십시오 <ctrl-v>
. 어떤 것을 사용하는지는 독자의 연습 문제로 남겨둡니다. :) 두 모드 모두 사용 가능합니다.훨씬 더내가 나열한 것보다 더 많은 명령이 있습니다. (자세한 내용은 각 편집기의 설명서를 참조하세요!)