터미널 내부 스크롤이 걱정되서 특정 프로그램에만 영향을 미치고 창간 전환시에는 영향이 없도록 screen
구성해두었습니다 .altscreen on
printf '\ec'
터미널을 클리어하는 것이 Ctrl+L
일반 명령어보다 낫다는 것을 알고 있어서 clear
이를 적용하기로 했습니다.
cl
항목의 기본 termcap은 \E[H\E[J
( ) 뒤에 ( )가 오는 것과 동일합니다. 세션 내에 있는 경우 이 값을 얻을 수 있습니다.ho
\E[H
cd
\E[J
echo $TERMCAP
screen
cl
로 변경하면 \Ec
예상했던 효과가 나타날지 궁금했는데 , 성공했습니다. 건배! 그러나 안타깝게도 엄청난 부작용이 있었습니다. 화살표 키가 내부적으로 작동하지 않게 되었습니다 vim
.
여전히 H
, J
, K
키 를 사용하여 L
탐색 할 수 있으므로 화살표 키를 사용하지 않을 이유가 없습니다.
.vimrc
변경 이 발생 하고 세션 내에서 실행할 screen
수 있으므로 모든 컴퓨터에 대해 변경해야 하기 때문에 변경을 피하고 싶습니다 .vim
ssh
.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: 질문과 관련된 다른 시행에도 영향을 미칠 수 있습니다. termcap
terminfo
termcap/info
vim
:set term=linux
.vimrc
less
screen
참고 4: 버그를 신고했습니다.https://savannah.gnu.org/bugs/?54317