다른 답변에서 볼 수 있듯이 CTRL-R이 bash처럼 작동하도록 .cshrc에 이것을 추가했습니다.
bindkey "^r" i-search-back
전반적으로 매우 잘 작동합니다. 내 문제는 CTRL-R 다음에 왼쪽 또는 오른쪽 화살표(줄 편집)를 수행할 때 커서 위치에 "[C" 또는 "[D"가 추가된 다음 수동으로 제거해야 한다는 것입니다. 이유를 아시나요? 어떻게 피할 수 있나요?
답변1
독서tcsh
매뉴얼 페이지, 이것은 작동하지 않습니다:
i-search-back (not bound)
Searches backward like history-search-backward, copies the
first match into the input buffer with the cursor positioned at
the end of the pattern, and prompts with `bck: ' and the first
match. Additional characters may be typed to extend the
search, i-search-back may be typed to continue searching with
the same pattern, wrapping around the history list if neces‐
sary, (i-search-back must be bound to a single character for
this to work) or one of the following special characters may be
typed:
^W Appends the rest of the word under the cursor to
the search pattern.
delete (or any character bound to backward-delete-char)
Undoes the effect of the last character typed and
deletes a character from the search pattern if
appropriate.
^G If the previous search was successful, aborts the
entire search. If not, goes back to the last suc‐
cessful search.
escape Ends the search, leaving the current line in the
input buffer.
Any other character not bound to self-insert-command terminates
the search, leaving the current line in the input buffer, and
is then interpreted as normal input. In particular, a carriage
return causes the current line to be executed. Emacs mode
only. See also i-search-fwd and history-search-backward.
매뉴얼 페이지에는 tcsh가 처리할 준비가 되어 있는 유일한 특수 문자는 나열된 4개 문자이며, 다른 문자는 다음과 같이 해석된다고 나와 있습니다.
- 검색 범위를 확장하려면 추가 문자를 입력할 수 있습니다.그리고
- "자체 삽입 명령에 바인딩되지 않은 다른 문자는 검색을 종료하고 현재 줄을 입력 버퍼에 남겨두고 일반 입력으로 해석됩니다.
이스케이프 문자(왼쪽/오른쪽 화살표의 일부)는 인쇄할 수 없는 문자이기 때문에 tcsh는 이를 버리고 인쇄 가능한 문자를 "일반 입력"의 일부로 남겨 둡니다.
답변2
먼저 Esc 키를 사용하여 검색을 종료한 다음 왼쪽 및 오른쪽 키를 사용하여 편집하세요.