프롬프트에서 -o vi를 설정하면 삽입 모드가 종료되고 화살표 키를 사용할 때마다 경고 차임이 계속 울립니다(bash/ksh).

프롬프트에서 -o vi를 설정하면 삽입 모드가 종료되고 화살표 키를 사용할 때마다 경고 차임이 계속 울립니다(bash/ksh).

프롬프트에 명령을 입력하는 동안 화살표 키를 사용하여 돌아가서 플래그를 편집할 수 있으며, 그렇게 하면 계속해서 삽입 모드에서 일반 모드로 돌아갑니다. vim의 동작과 일치하도록 어떻게 끄나요?

또한 vim에서는 바인딩되지 않은 일반 모드에서 명령이 실행될 때마다 경고 차임을 제거하기 위해 다음을 수행할 수 있습니다(일부 상황에서는 이 방법을 사용하므로 터미널 전체에서 명령을 무음으로 설정하고 싶지 않습니다).

set noerrorbells visualbell t_vb=
if has('autocmd')
      autocmd GUIEnter * set visualbell t_vb=
  endif

프롬프트에 대해서만 시스템 벨을 끄는 방법이 있습니까?

더 많은 정보를 제공하도록 편집되었습니다.

이는 반사 터미널 편집기를 사용하거나 powershell을 통해 sshing을 사용하여 수행됩니다. $TERM은 내 .profile에서 xterm-256color로 설정되어 있지만 설명에 따르면 powershell을 사용할 때 리플렉션에서는 xterm이, vt100에서는 vt100이 표시됩니다. terminfo는 세 가지 경우 모두 $TERM과 일치하는 용어를 표시하며 프롬프트 동작은 모든 구성에서 동일합니다.

OS는 RHEL이고 화살표 키의 Esc 키는 infocmp와 일치하는 화살표에서 시계 방향으로 "\EOA \EOC \EOB \EOD"입니다.

답변1

환경 변수의 값은 기능 키 시퀀스를 해석하고 항목이 사용되는 이스케이프 시퀀스를 통해 커서 및 터미널 화면을 제어하는 ​​프로그램에 의해 $TERM선택되며 , 모두 및/또는 라이브러리를 사용합니다.terminfoncurseslibtinfo

프로그램이 제대로 실행되기 위해서는 사용하도록 지시된 선택된 terminfo 항목이 이러한 프로그램을 실행하는 호스트에 연결하는 데 사용하는 터미널 또는 터미널 에뮬레이터를 정확하게 설명해야 합니다.

하나 이상의 MicroFocus Reflection 문서에 따르면 기본 터미널 에뮬레이션은 "VT500-7"이므로 설정을 변경하지 않은 경우 $TERM이상적인 설정에 따라 다르지만 , 또는 와 같은 것으로 설정해야 할 것입니다. 연결하려는 호스트에 있는 terminfo 파일의 정확한 버전입니다.vt320vt420vt420pc

의 경우 powershell터미널 에뮬레이터가 아닙니다. 아마도 Windows 터미널을 의미하는 것일까요? 그렇다면 이는 ANSI 터미널 에뮬레이터(기본적으로)로 설명되지만 대부분의 terminfo 파일에는 ms-terminal일반 것보다 더 나을 수 있는 정의가 있습니다 ansi. Microsoft는 터미널을 "가능한 한 가깝게 xterm-256color" 원한다는 소문이 있습니다. 따라서 연결된 특정 호스트의 terminfo 파일 버전에 따라 작동할 수도 있습니다.

관련 정보