cl termcap을 사용자 정의하면 vim이 gnu 화면에서 정지됩니다.

cl termcap을 사용자 정의하면 vim이 gnu 화면에서 정지됩니다.

터미널 내부 스크롤이 걱정되서 특정 프로그램에만 영향을 미치고 창간 전환시에는 영향이 없도록 screen구성해두었습니다 .altscreen on

printf '\ec'터미널을 클리어하는 것이 Ctrl+L일반 명령어보다 낫다는 것을 알고 있어서 clear이를 적용하기로 했습니다.

cl항목의 기본 termcap은 \E[H\E[J( ) 뒤에 ( )가 오는 것과 동일합니다. 세션 내에 있는 경우 이 값을 얻을 수 있습니다.ho\E[Hcd\E[Jecho $TERMCAPscreen

cl로 변경하면 \Ec예상했던 효과가 나타날지 궁금했는데 , 성공했습니다. 건배! 그러나 안타깝게도 엄청난 부작용이 있었습니다. 화살표 키가 내부적으로 작동하지 않게 되었습니다 vim.

여전히 H, J, K키 를 사용하여 L탐색 할 수 있으므로 화살표 키를 사용하지 않을 이유가 없습니다.

.vimrc변경 이 발생 하고 세션 내에서 실행할 screen수 있으므로 모든 컴퓨터에 대해 변경해야 하기 때문에 변경을 피하고 싶습니다 .vimssh.vimrc

이것이 내가 현재 가지고 있는 것입니다 .screenrc:

vbell off
startup_message off
altscreen on
termcapinfo xterm* ti@:te@:cl=\Ec
#termcapinfo xterm* xn:hs@:cd=\E[J:ho=\E[H

나는 등의 유무에 관계없이 몇 가지 변형을 시도했지만 ti문제는 그 cl자체로 가치가 있으면 \E[H\E[J작동하고 그렇지 않으면 작동하지 않는 것 같습니다.

문제를 재현하려면 위의 파일을 작성하고 $HOME/.screenrc예를 들어 를 사용하여 세션을 시작 screen -ADRS profile하고 try 를 사용하면 vim .screenrc키보드의 키 화살표를 사용하여 탐색할 수 없고 HJKL키만 사용하여 탐색할 수 있습니다.

Screen version 4.03.01 (GNU) 28-Jun-15
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)

\Ec명확 하고 동일한 동작을 갖고 계속 작업하는 것이 가능합니까 vim?

참고 1: @schily가 말했듯이 이것은 반드시 termcap문제가 되는 것은 아니지만 문제가 될 수 있습니다 terminfo. 그러나 어느 쪽이든 나는 조정 규칙을 둘 다에 적용하고 매뉴얼에 따라 내 termcapinfo진술에 진술을 사용하고 있습니다. .screenrc전문가님, 저는 이 문제를 해결하고 싶습니다. 참고 2: make로 실행하면 작동하지만 이전에 말했듯이 변경 사항을 피하고 싶습니다. 참고 3: 질문과 관련된 다른 시행에도 영향을 미칠 수 있습니다. termcapterminfotermcap/info
vim:set term=linux.vimrc
lessscreen
참고 4: 버그를 신고했습니다.https://savannah.gnu.org/bugs/?54317

관련 정보