Очистка экрана после выхода из Vim в FreeBSD
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-30 15:01:40
Очистка экрана после выхода из Vim в FreeBSD
после выхода из вим на экране остается содержимое файла который редактировался.
хочу, чтобы после выхода из вим восстанавливалось то что было до запуска вим и отрытия файла.
есть несколько путей решить эту проблему, вот выдержка из документации vim
Switching screens in an xterm *xterm-screens* *xterm-save-screen*
(From comp.editors, by Juergen Weigert, in reply to a question)
:> Another question is that after exiting vim, the screen is left as it
:> was, i.e. the contents of the file I was viewing (editing) was left on
:> the screen. The output from my previous like "ls" were lost,
:> ie. no longer in the scrolling buffer. I know that there is a way to
:> restore the screen after exiting vim or other vi like editors,
:> I just don't know how. Helps are appreciated. Thanks.
:
:I imagine someone else can answer this. I assume though that vim and vi do
:the same thing as each other for a given xterm setup.
They not necessarily do the same thing, as this may be a termcap vs.
terminfo problem. You should be aware that there are two databases for
describing attributes of a particular type of terminal: termcap and
terminfo. This can cause differences when the entries differ AND when of
the programs in question one uses terminfo and the other uses termcap
(also see |+terminfo|).
In your particular problem, you are looking for the control sequences
^[[?47h and ^[[?47l. These switch between xterms alternate and main screen
buffer. As a quick workaround a command sequence like
echo -n "^[[?47h"; vim ... ; echo -n "^[[?47l"
may do what you want. (My notation ^[ means the ESC character, further down
you'll see that the databases use \E instead).
On startup, vim echoes the value of the termcap variable ti (terminfo:
smcup) to the terminal. When exiting, it echoes te (terminfo: rmcup). Thus
these two variables are the correct place where the above mentioned control
sequences should go.
Compare your xterm termcap entry (found in /etc/termcap) with your xterm
terminfo entry (retrieved with /usr/5bin/infocmp -C xterm). Both should
contain entries similar to:
:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:
PS: If you find any difference, someone (your sysadmin?) should better check
the complete termcap and terminfo database for consistency.
NOTE 1: If you recompile Vim with FEAT_XTERM_SAVE defined in feature.h, the
builtin xterm will include the mentioned "te" and "ti" entries.
NOTE 2: If you want to disable the screen switching, and you don't want to
change your termcap, you can add these lines to your .vimrc:
:set t_ti= t_te=
====================================================================
Пробовал раскоментарить FEAT_XTERM_SAVE в feature.h, чтобы включить фичу +xterm_save
но тогда вим не хочет собираться, ругается на ошибку синтаксиса.
В /etc/termcap тоже непонятно где прописывать, для xterm вроде там уже прописано..
непонятно, почему нужно редактировать termcap если собраный вим говорит что собрался с поддержкой +terminfo,
а я его почему-то не нашел в системе. В общем запутался совсем. подскажите пжл кто сталкивался с подобным.
Система: FreeBSD 6.1-RELEASE, локаль koi-8r, вим 7.2 sources
хочу, чтобы после выхода из вим восстанавливалось то что было до запуска вим и отрытия файла.
есть несколько путей решить эту проблему, вот выдержка из документации vim
Switching screens in an xterm *xterm-screens* *xterm-save-screen*
(From comp.editors, by Juergen Weigert, in reply to a question)
:> Another question is that after exiting vim, the screen is left as it
:> was, i.e. the contents of the file I was viewing (editing) was left on
:> the screen. The output from my previous like "ls" were lost,
:> ie. no longer in the scrolling buffer. I know that there is a way to
:> restore the screen after exiting vim or other vi like editors,
:> I just don't know how. Helps are appreciated. Thanks.
:
:I imagine someone else can answer this. I assume though that vim and vi do
:the same thing as each other for a given xterm setup.
They not necessarily do the same thing, as this may be a termcap vs.
terminfo problem. You should be aware that there are two databases for
describing attributes of a particular type of terminal: termcap and
terminfo. This can cause differences when the entries differ AND when of
the programs in question one uses terminfo and the other uses termcap
(also see |+terminfo|).
In your particular problem, you are looking for the control sequences
^[[?47h and ^[[?47l. These switch between xterms alternate and main screen
buffer. As a quick workaround a command sequence like
echo -n "^[[?47h"; vim ... ; echo -n "^[[?47l"
may do what you want. (My notation ^[ means the ESC character, further down
you'll see that the databases use \E instead).
On startup, vim echoes the value of the termcap variable ti (terminfo:
smcup) to the terminal. When exiting, it echoes te (terminfo: rmcup). Thus
these two variables are the correct place where the above mentioned control
sequences should go.
Compare your xterm termcap entry (found in /etc/termcap) with your xterm
terminfo entry (retrieved with /usr/5bin/infocmp -C xterm). Both should
contain entries similar to:
:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:
PS: If you find any difference, someone (your sysadmin?) should better check
the complete termcap and terminfo database for consistency.
NOTE 1: If you recompile Vim with FEAT_XTERM_SAVE defined in feature.h, the
builtin xterm will include the mentioned "te" and "ti" entries.
NOTE 2: If you want to disable the screen switching, and you don't want to
change your termcap, you can add these lines to your .vimrc:
:set t_ti= t_te=
====================================================================
Пробовал раскоментарить FEAT_XTERM_SAVE в feature.h, чтобы включить фичу +xterm_save
но тогда вим не хочет собираться, ругается на ошибку синтаксиса.
В /etc/termcap тоже непонятно где прописывать, для xterm вроде там уже прописано..
непонятно, почему нужно редактировать termcap если собраный вим говорит что собрался с поддержкой +terminfo,
а я его почему-то не нашел в системе. В общем запутался совсем. подскажите пжл кто сталкивался с подобным.
Система: FreeBSD 6.1-RELEASE, локаль koi-8r, вим 7.2 sources
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: Очистка экрана после выхода из Vim в FreeBSD
Код: Выделить всё
Z301171463546 - можно пожертвовать мне денег
- Alex Keda
- стреляли...
- Сообщения: 35476
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Очистка экрана после выхода из Vim в FreeBSD
а меня в линухах обратное бесит...
экран колёсиком я всегда ввех крутану, а вот нужный кусок файла, оставшийся от vim - иногда тяжело вывести...
да и красивей с ним - подсветка...
экран колёсиком я всегда ввех крутану, а вот нужный кусок файла, оставшийся от vim - иногда тяжело вывести...
да и красивей с ним - подсветка...
Убей их всех! Бог потом рассортирует...
- f_andrey
- майор
- Сообщения: 2651
- Зарегистрирован: 2007-12-26 1:22:58
- Откуда: СПб
- Контактная информация:
Re: Очистка экрана после выхода из Vim в FreeBSD
Согласен мне тоже удобнее когда не стирается, тем более история команд у нас крайне гибкая, а вот доки просто удобно читать дочитал до чего надо, вышел и пример перед глазамиlissyara писал(а):а меня в линухах обратное бесит...
экран колёсиком я всегда ввех крутану, а вот нужный кусок файла, оставшийся от vim - иногда тяжело вывести...
да и красивей с ним - подсветка...

Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-30 15:01:40
Re: Очистка экрана после выхода из Vim в FreeBSD
Ребята все это конечно хорошо, но так получилось что большинство серваков с линухом, и там после вима консоль чистится, вот я и привык.
повторю еще раз, если кто сталкивался или знает точно что нужно сделать подскажите. ведь даже дока есть, только непонятки в ней для меня..
повторю еще раз, если кто сталкивался или знает точно что нужно сделать подскажите. ведь даже дока есть, только непонятки в ней для меня..
- Alex Keda
- стреляли...
- Сообщения: 35476
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Очистка экрана после выхода из Vim в FreeBSD
ага.
если знаете как в линухе сделать обратное - тоже говорите - буду у себя править
если знаете как в линухе сделать обратное - тоже говорите - буду у себя править

Убей их всех! Бог потом рассортирует...
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-30 15:01:40
Re: Очистка экрана после выхода из Vim в FreeBSD
теоретически нужно поправить FEAT_XTERM_SAVE в feature.h чтобы врубить +xterm_save, на практике у меня скомпилить не получилось.
еще вариант править /etc/termcap, для терминала который используется, но тут тоже непонятки.
я думал местные гуру, в том числе и вы) подскажут куда копать..вообще интересено было бы разобраться
еще вариант править /etc/termcap, для терминала который используется, но тут тоже непонятки.
я думал местные гуру, в том числе и вы) подскажут куда копать..вообще интересено было бы разобраться
- Alex Keda
- стреляли...
- Сообщения: 35476
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Очистка экрана после выхода из Vim в FreeBSD
ну, меня поведение системы полностью устраивало.
Не устраивало в линухе, но и желания рыть не возникало...
Думаю у всех также... Поэтому никто и не подскажет...
Не устраивало в линухе, но и желания рыть не возникало...
Думаю у всех также... Поэтому никто и не подскажет...
Убей их всех! Бог потом рассортирует...
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-30 15:01:40
Re: Очистка экрана после выхода из Vim в FreeBSD
решение найдено. т.к. я работаю с серверами удаленно через putty достаточно сменить тип терминала с xterm на xterm-xfree86 или xterm-basic и все. для меня это приемлемо.
а вообще можно отредактировать /etc/termcap секцию для xterm, т.к. во фре эта фича по умолчанию отключена для xterm.
а еще есть такая штука как screen, тоже можно будет попробовать.
все, тему можно закрывать, всем спасибо.
а вообще можно отредактировать /etc/termcap секцию для xterm, т.к. во фре эта фича по умолчанию отключена для xterm.
а еще есть такая штука как screen, тоже можно будет попробовать.
все, тему можно закрывать, всем спасибо.