CTRLGNU 화면에서 vim을 실행할 때 화살표 키와 Pg* 키 조합이 예상대로 작동하지 않는 것을 발견했습니다 .
Ubuntu 10.10 패키지를 사용하고 있습니다 vim-gnome
.
Ubuntu를 실행하는 다른 컴퓨터에서는 제대로 작동합니다. 불행히도 지금은 사용할 수 있는 구성이 없습니다.
관련 질문은 다음과 같습니다.Vim에서 Ctrl + 화살표를 수정하는 방법은 무엇입니까?
그러나 제안된 해결책은 터미널 에뮬레이터(이 경우 PuTTY)와 함께 사용할 수 있도록 vim의 키 바인딩을 다시 매핑하는 것입니다. 비슷한 작업을 수행한 기억이 없으며 이 문제를 해결할 수 있는 화면 구성 옵션이 있을 것으로 의심됩니다.
아직 하나 있어요철사$ TERM=xterm vim
gnu-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=xterm
이 매핑을 추가하면 상황이 악화될 뿐입니다(예를 참조하세요).왜 "xterm"으로 설정된 TERM을 사용하지 않습니까?ncurses FAQ에서)- 대체 이름은
screen.xterm
원격 시스템에 설치될 가능성이 없습니다(자세한 내용은2015년 6월터미널 데이터베이스에서).
그러나 일반적으로 대체 이름을 사용하는 것은 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