GNU 화면 아래 vim에서 CTRL-* 수정

GNU 화면 아래 vim에서 CTRL-* 수정

CTRLGNU 화면에서 vim을 실행할 때 화살표 키와 Pg* 키 조합이 예상대로 작동하지 않는 것을 발견했습니다 .

Ubuntu 10.10 패키지를 사용하고 있습니다 vim-gnome.

Ubuntu를 실행하는 다른 컴퓨터에서는 제대로 작동합니다. 불행히도 지금은 사용할 수 있는 구성이 없습니다.

관련 질문은 다음과 같습니다.Vim에서 Ctrl + 화살표를 수정하는 방법은 무엇입니까?

그러나 제안된 해결책은 터미널 에뮬레이터(이 경우 PuTTY)와 함께 사용할 수 있도록 vim의 키 바인딩을 다시 매핑하는 것입니다. 비슷한 작업을 수행한 기억이 없으며 이 문제를 해결할 수 있는 화면 구성 옵션이 있을 것으로 의심됩니다.

아직 하나 있어요철사$ TERM=xterm vimgnu-screen 메일링 리스트에서는 vim via를 실행하는 것이 적절한 수정 또는 해결 방법이 될 것이라고 제안했습니다 . 이것은 효과가 있지만 가능한 부작용에 대해 조금 걱정됩니다. 또한 솔루션이 필요한 경우 다른 컴퓨터에 설정할 수 있는 솔루션이 될 만큼 익숙하지 않은 것 같습니다.

답변1

그가 업데이트에서 직관적으로 말했듯이 파일을 추가하면 term xterm문제 ~/.screenrc가 해결되는 것 같습니다.

답변2

근본적인 문제는 screen실제 터미널( TERM환경 변수 Outside 로 식별됨 )과 내부 시뮬레이션 screen간에 수행된 매핑이 screen불완전하다는 것입니다.

혹시 테스트하게 된다면 (사용하세요.시험또는), 다음 사항에 결함이 있음을 알 수 있습니다.

  • 색상
  • 특수 키

term설정을 통해 이러한 문제를 해결하려는 경우의 단점 .screenrc은 주어진 실제 터미널에서만 작동하고 다른 터미널 구현에는 이식할 수 없다는 것입니다. 이것문서노트

기본 목적이 아닌 목적으로 용어 명령을 사용하는 것은 권장되지 않습니다.

다음을 사용하는 또 다른 솔루션(다른 단점이 있음)이 있습니다.screen 문서:

화면이 자체적으로 터미널 이름을 알아내려고 하면 먼저 다음과 같은 항목을 찾습니다.화면.학기, 어디학기변수의 내용입니다 $TERM. 그러한 항목이 없으면 화면이 시도합니다 screen(또는 screen-w터미널이 넓은 경우(132열 이상)). 이 항목도 찾을 수 없으면 vt100대체 항목으로 사용됩니다.

ncurses는 이 상황에 대한 몇 가지 유용한 대체 터미널 설명을 제공합니다. 예를 들면 다음과 같습니다.screen.xterm-new, 화면 매핑 문제를 수정하세요. 실제로 저는 를 사용 TERM=xterm-new하고 화면을 실행할 때 사용할 수 있는 기능 키 매핑을 얻습니다.

화면 term설정으로 돌아가서 테스트하는 동안 다음 사항이 있음을 알 수 있습니다.아직매핑 문제는 이러한 대안에서 해결됩니다. 를 사용하여 정확한 터미널 설명을 얻을 수 있는 경우 term이러한 대안은 에 대한 간단한 별칭이 됩니다 screen. 그렇지 않습니다.

정말 저주가 없군요아니요제공되는 screen.xterm이유:

그러나 일반적으로 대체 이름을 사용하는 것은 term자신의 이름에서 사용하는 것보다 개선된 것입니다 .screenrc. 즉, 발생하는 것보다 더 많은 문제를 해결합니다. 설정의 경우에는 그 반대입니다 term.

답변3

실행 중인 프로세스 내에서 작동하는 터미널을 설정하는 방법에는 여러 가지가 있습니다.

  • 실행 화면 인스턴스에서 ^A-를 누르고 :명령을 실행하면 term xterm다음이 발생합니다.최근 오픈해당 인스턴스 아래의 화면에서 $TERM환경 변수를 로 설정 하면 xterm호출된 vim인스턴스로 전파됩니다. 이러한 vim 인스턴스는 CTRL 조합과 관련하여 올바른 동작을 보여줍니다. 이 전략의 부작용은 발견되지 않았습니다. 이 명령은 기존 화면에 영향을 주지 않습니다. 이 명령은 물론 파일에서 사용할 수 있으므로 ~/.screenrc다른 컴퓨터에서 이 방법을 사용할 수도 있습니다.

  • 실행 중인 vim 인스턴스에서 이 명령을 사용하면 set term=xterm해당 vim 인스턴스에서 CTRL 콤보가 작동합니다. 아직 이해할 수 없는 이유로 인해 @*X 클립보드 연결이 끊어지는 부작용이 있습니다(예: 흥미롭게 @+도 클립보드 부작용은 로 시작하는 vim 인스턴스에서 명령을 실행할 때도 발생합니다.:set term=screen$TERM=xterm

관련 정보