tcsh: i-search-back 문자 결함

tcsh: i-search-back 문자 결함

다른 답변에서 볼 수 있듯이 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 키를 사용하여 검색을 종료한 다음 왼쪽 및 오른쪽 키를 사용하여 편집하세요.

관련 정보