종료 후 vim 화면 버퍼를 이전 bash 활동으로 바꾸는 방법은 무엇입니까? bash 쉘 활동이 표시됩니다 (이것이 내가

bash (또는 vim) 기능이 무엇인지 찾으려고합니다. 시나리오는 다음과 같습니다. 나는 bash 터미널에 있고 vim으로 무언가를 편집 한 다음 bash로 돌아갑니다. 일부 터미널에서는 vim 세션 화면이 사라져 이전 bash 쉘 활동이 표시됩니다 (이것이 내가 원하는 것입니까?).

다른 경우에는 vim 세션 화면 버퍼가 남아 있습니다 (이전 bash 쉘 활동 숨기기). 화면을 지우거나 bash 활동이 vim 세션 버퍼를 화면 밖으로 밀 때까지 기다려야합니다.

vim 세션 버퍼를 이전 bash 활동으로 바꾸려면이 동작을 어떻게 제어 할 수 있습니까?

감사합니다 팀



답변

빔을 전송 t_ti하고 t_ks상기 단말에 대한 세션을 시작하는 경우 t_tet_ke그것이 끝나면. t_tit_te단말 원인 시퀀스는 다른 화면으로 전환한다.

당신의에서 ~/.vimrc파일 당신은 할 수 vim는이 라인을 포함하여 종료 할 때 화면에 문서를 떠나 :

set t_ti=""

이와 비슷한 줄이 있으면 줄을 제거하면 종료 할 때 이전 터미널 내용이 나타납니다 vim.


답변

이 문제의 원인은 프로그램을 사용하는 것일 수 있습니다 screen. screen세션 에있을 때 vim이 터미널 상태를 반환 할 수 없다는 것을 알았습니다 .

Ubuntu 15.10의 screen 또는 screen / vim 콤보에만 해당되는지 확실하지 않습니다. 위에서 설명한 것과 같은 원인으로 다른 용어 screen가 있다고 생각 합니다.


답변

~/.bash_profile파일 에 한 줄만 추가 하면 로그인 할 때마다 TERM을 xterm으로 내보낼 수 있습니다. 다음과 같이하십시오;

echo "TERM=xterm; export TERM" >> ~/.bash_profile

다음에 로그인 할 때 문제가 해결되며 다시 로그인하지 않으려면 다음 중 하나를 수행하십시오 …

// either ...
export TERM=xterm
// ... or ...
TERM=xterm; export TERM
// ... or ...
source ~/.bash_profile

답변

팀 위의 답변 모두 맞습니다. 이를 수행 할 수있는 기능이 $ TERM의 termcap 항목에 정의되어 있으면 Vim은 터미널을 “대체 화면”으로 전환합니다.

“일부 터미널에서 (… 작동합니다 …)”및 “다른 터미널에서 (… 작동하지 않습니다 …)”라고 말합니다.

모든 터미널에 대해 정확히 동일한 터미널 에뮬레이터를 실행하고 있습니까?

예를 들어, 내 홈 리눅스 상자에는 gnome-terminal, xterm, Konsole, yakuake 및 ctrl-alt-F1과 관련된 “가상 터미널”과 함께 잊어 버린 몇 가지가 있습니다. ctrl-alt-F6 정도. “linux”라는 터미널 정의가있는 가상 터미널을 제외하고 이들 대부분은 “xterm”에 대한 “standard”termcap 항목과 함께 작동 할 수 있습니다.

터미널 에뮬레이터 자체와 작동하지 않는 터미널과 그렇지 않은 터미널에서 $ TERM의 값을 확인하여 다른 점을 확인하십시오. 또한 다른 사용자로 로그인 한 경우 문제의 중심에있을 수 있습니다. 각 사용자마다 고유 한 .bashrc가 있으므로 다양한 설정이 사용자마다 다를 수 있습니다.

희망이 도움이됩니다!
-pbr


답변

이것은 터미널 정보 및 터미널 정보를 다루는 기기의 설정과 관련이 있습니다. 휴대용 솔루션 중 하나는 GNU Screen을 사용하는 것입니다. Vim과 Bash를 위해 하나의 창을 열어 두 세션을 분리하십시오. X11의 xterm, Gnome의 Gnome Terminal 또는 OS X의 Terminal.app와 같은 그래픽 터미널을 사용하는 경우 동일한 효과를 얻기 위해 새 창이나 탭을 열 수 있습니다.