Не дозволяйте Vim очищати термінал після виходу


15

Якщо я:

$ less file

І натисніть, qщоб вийти less, я можу побачити той самий текст, який був у мене на екрані, коли lessвін ще працює.

Однак, якщо я

$ vim file

І :qмій термінал заблокований ...

Скріншоти мого терміналу після закриття lessта vim:

введіть тут опис зображення введіть тут опис зображення

Чи можу я якось запобігти цьому? Це лише в моїй системі Linux. Моя система FreeBSD насправді працює як очікувалося (використання одного і того ж програмного забезпечення / налаштувань навколо, TERMє xterm-colorдля обох, vim -u NONEне має значення).

Приклад того, що я хотів би мати:

введіть тут опис зображення

Відповіді:


18

За замовчуванням VIM при завершенні посилає рядок, налаштований з можливістю, t_teдо терміналу хостингу, щоб повідомити його, щоб очистити екран. Щоб уникнути цього, просто :set t_te=нічого не відправляти в термінал і уникати очищення екрана. Додаткову :help termінформацію про можливості терміналу див. У формі.


2

Оскільки ви використовуєте xterm, ви можете використовувати його основні та альтернативні буферні екрани для заміни екрана, як у цьому розділі з мого .vimrc

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       

Примітка: ^[це не буквальний текст, це символ втечі, використовуйте Ctrl+, vа потім Escвставте його.

Ці команди vim додають відповідні команди, які можуть бути відсутні у записі linux terminfo. Більше інформації на

:help xterm-screens

Гм, все одно, здається, нічого не робить? Це працює так, ніби я використовую set t_te=, але я повинен робити більше, я думаю?
Martin Tournoij
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.