(다음) 명령 프롬프트에 텍스트를 출력하는 명령이 있습니까?
실행될 때 일부 명령을 실행한 다음 실행할 다음 명령을 "제안"하는 함수를 작성하고 싶습니다.
~/Desktop $ foo
~/Desktop $ some_new_command_which_user_did_not_enter
답변1
답변2
모든 POSIX 호환 쉘은 vi
명령 편집 모드를 구현합니다. 이는 .Edit 모드 set -o vi
와 같이 구별 될 수 있습니다 .set +o vi
vi
끼워 넣다그리고주문하다모델. 각 프롬프트의 기본값은 다음과 같습니다.입력하다모드이지만 ESC
키를 누르면 컨텍스트가 다음으로 전환됩니다.주문하다모델.
일부 관련 기능이 모드의포함하다:
<control>-L
- 현재 명령줄을 다시 그립니다. 다시 그리기 선의 동일한 위치에 커서를 놓습니다.
#
- 현재 명령줄의 시작 부분에 이 문자를 삽입
'#'
하고 결과 편집 줄을 주석으로 처리합니다. 이 줄은 명령 기록에 입력되어야 합니다fc
.
- 현재 명령줄의 시작 부분에 이 문자를 삽입
=
- 현재 명령줄 위치에서 빅워드에 대해 가능한 쉘 단어 확장을 표시합니다(워드 확장 참조).
@letter
- 명명된 별칭의 값을 삽입합니다._편지. 기호 문자는 이식 가능한 문자 집합의 단일 알파벳 문자를 나타냅니다. 구현은 확장으로 추가 문자를 지원할 수 있습니다. 만약에
alias
_편지삽입의 일부로 실행되어야 하는 추가 편집 명령이 포함되어 있습니다. 그렇지 않다면alias
_편지활성화되면 이 명령은 아무런 효과가 없습니다.
- 명명된 별칭의 값을 삽입합니다._편지. 기호 문자는 이식 가능한 문자 집합의 단일 알파벳 문자를 나타냅니다. 구현은 확장으로 추가 문자를 지원할 수 있습니다. 만약에
참고: 효과 @_[letter]
는 반복적이며 텍스트 입력 효과로 특수 문자를 이스케이프할 수 있습니다.CONTROL+V[CHAR]
[count]-
- 현재 명령줄을 다음으로 설정합니다.세다쉘 명령 기록의 이전 명령줄입니다. 개수를 지정하지 않으면 기본값은 1입니다. 커서는 새 명령의 첫 번째 문자에 위치해야 합니다. 이 쉘에 유효한 최대 명령 수가 초과되면 or
k
명령 이 취소됩니다.-
($HISTSIZE
환경 변수의 영향을 받음), 터미널 알람이 발생하고 명령이 유효하지 않습니다.
- 현재 명령줄을 다음으로 설정합니다.세다쉘 명령 기록의 이전 명령줄입니다. 개수를 지정하지 않으면 기본값은 1입니다. 커서는 새 명령의 첫 번째 문자에 위치해야 합니다. 이 쉘에 유효한 최대 명령 수가 초과되면 or
[count]y
스포츠- 양키(즉, 사본)현재 커서 위치부터 모션 명령 결과 위치까지의 문자버퍼 저장. 숫자계산모션 명령에 적용되어야 합니다. 동작 명령이 명령줄의 시작 부분을 향해 이동하는 경우 현재 커서 위치 아래의 문자는 끌어온 문자 세트에 포함되어서는 안 됩니다. 모션 명령이 이면
y
현재 명령줄 전체를 저장 버퍼로 가져와야 합니다. 현재 커서 위치는 변경되지 않은 상태로 유지되어야 합니다. 개수가 현재 커서 위치와 모션 명령이 커서를 이동하는 명령줄 끝 사이의 문자 수보다 큰 경우, 위 범위에 있는 나머지 문자는 오류로 간주되어서는 안 됩니다.
- 양키(즉, 사본)현재 커서 위치부터 모션 명령 결과 위치까지의 문자버퍼 저장. 숫자계산모션 명령에 적용되어야 합니다. 동작 명령이 명령줄의 시작 부분을 향해 이동하는 경우 현재 커서 위치 아래의 문자는 끌어온 문자 세트에 포함되어서는 안 됩니다. 모션 명령이 이면
Y
- 현재 커서 위치에서 줄 끝까지 문자를 저장 버퍼로 드래그합니다. 현재 문자 위치는 변경되지 않은 상태로 유지되어야 합니다.
[count]p
- 현재 커서 위치 뒤에 보유 버퍼의 현재 내용 복사본을 배치합니다. 현재 커서 위치는 저장 버퍼에서 입력된 마지막 문자로 이동해야 합니다. 개수는 저장 버퍼의 복사본 수를 나타내야 합니다.
[count]P
- 현재 커서 위치 바로 앞에 보유 버퍼의 현재 내용 복사본을 배치합니다. 현재 커서 위치는 저장 버퍼에서 입력된 마지막 문자로 이동되어야 합니다. 개수는 저장 버퍼의 복사본 수를 나타내야 합니다.
쉘별 라인 편집기를 통해 유사한 효과를 많이 생성할 수 있습니다.(예 : bash
'의 readline
명령 또는 BSD를 통해 - 라이센스가 부여됨 )bind
~/.input.rc
editline
~/.editrc
.