Экран GNU влияет на отображение моего терминала

2754
Brian

Я использую urxvt и запущенный экран. Мои проблемы:

  • Подчеркивая - некоторые из моих скриптов имеют цветной вывод. Они хороши, если я просто запускаю urxvt, но когда на экране они подчеркнуты, и это затрудняет чтение
  • Прокрутка - при переключении между окнами на экране и запущенными командами прокрутка для каждого окна запутывается. Вместо того, чтобы быть только прокруткой для текущего окна, он объединяет все прокрутки. Поэтому, если я перейду от vim к другому окну и прокручиваю вверх, я увижу мое окно vim.
  • Выход из Vim. Когда я завершаю работу с vim только с помощью urxvt, он скрывает редактор, и я вижу подсказки и команды, которые я выполнял до вызова vim. Из внутреннего экрана, когда я покидаю vim, у меня появляется подсказка под редактором vim. Я хотел бы, чтобы он скрывал редактор, как он делает, когда не работает urxvt.

Есть идеи?

# terminfo and termcap for nice 256 color terminal  # allow bold colors - necessary for some reason attrcolor b ".I"   # erase background with current bg color  defbce "on"   #terminfo rxvt-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' #terminfo screen 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'  # Skip the startup message startup_message off  term xterm  screen  title VIM  screen ssh bcooper@loki  title Loki  screen ssh ... title Logs  screen  title Mac  select 1 select 0  hardstatus alwayslastline hardstatus string '%{= kG}[ %%H %][%= %{=kw}%?%-Lw%?%(%%n*%f%t%?(%u)%?%)%%?%+Lw%?%?%= %][%%Y-%m-%d %%c %]'  bind ( eval "writebuf" "exec sh -c 'pbcopy < /tmp/screen-exchange'" bind ")" eval "exec sh -c 'pbpaste > /tmp/screen-exchange'"   #Use the alternate screen - helps with quiting vim and not messing up current window altscreen on 

НАСТРОЙКИ - Локальная машина

declare -x COLORFGBG="15;0" declare -x COLORTERM="rxvt" declare -x COMMAND_MODE="unix2003" declare -x DISPLAY="/tmp/launch-kxXxmI/org.x:0" declare -x OLDPWD declare -x declare -x PS1="[\\W]\$ " declare -x SHELL="/bin/bash" declare -x SHLVL="2" declare -x SSH_AUTH_SOCK="/tmp/launch-QMhdZD/Listeners" declare -x TERM="xterm" declare -x TMPDIR="/var/folders/Ot/Ot3uMpWLF-aFeojPSVbhHU+++TI/-Tmp-/" declare -x USER="briancooper" declare -x WINDOWID="10485766" declare -x X11_PREFS_DOMAIN="org.x.X11" declare -x __CF_USER_TEXT_ENCODING="0x1F5:0:0" 

Локальная машина с экраном

declare -x Apple_PubSub_Socket_Render="/tmp/launch-cnvvgY/Render" declare -x COLORFGBG="15;0" declare -x COLORTERM="rxvt" declare -x COMMAND_MODE="unix2003" declare -x DISPLAY="/tmp/launch-kxXxmI/org.x:0" declare -x OLDPWD declare -x PS1="[\\W]\$ " declare -x SHELL="/bin/bash" declare -x SHLVL="3" declare -x SSH_AUTH_SOCK="/tmp/launch-QMhdZD/Listeners" declare -x STY="491.ttys000.brian-coopers-macbook-pro-2" declare -x TERM="xterm" declare -x TERMCAP="SC|xterm|VT 100/ANSI X3.64 virtual terminal:\\ :DO=\\E[%dB:LE=\\E[%dD:RI=\\E[%dC:UP=\\E[%dA:bs:bt=\\E[Z:\\ :cd=\\E[J:ce=\\E[K:cl=\\E[H\\E[J:cm=\\E[%i%d;%dH:ct=\\E[3g:\\ :do=^J:nd=\\E[C:pt:rc=\\E8:rs=\\Ec:sc=\\E7:st=\\EH:up=\\EM:\\ :le=^H:bl=^G:cr=^M:it#8:ho=\\E[H:nw=\\EE:ta=^I:is=\\E)0:\\ :li#57:co#212:am:xn:xv:LP:sr=\\EM:al=\\E[L:AL=\\E[%dL:\\ :cs=\\E[%i%d;%dr:dl=\\E[M:DL=\\E[%dM:dc=\\E[P:DC=\\E[%dP:\\ :im=\\E[4h:ei=\\E[4l:mi:IC=\\E[%d@:ks=\\E[?1h\\E=:\\ :ke=\\E[?1l\\E>:vi=\\E[?25l:ve=\\E[34h\\E[?25h:vs=\\E[34l:\\ :ti=\\E[?1049h:te=\\E[?1049l:us=\\E[4m:ue=\\E[24m:so=\\E[3m:\\ :se=\\E[23m:mb=\\E[5m:md=\\E[1m:mr=\\E[7m:me=\\E[m:ms:\\ :Co#8:pa#64:AF=\\E[3%dm:AB=\\E[4%dm:op=\\E[39;49m:AX:\\ :vb=\\Eg:G0:as=\\E(0:ae=\\E(B:\\ :ac=\\140\\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\\ :po=\\E[5i:pf=\\E[4i:Km=\\E[M:k0=\\E[10~:k1=\\EOP:k2=\\EOQ:\\ :k3=\\EOR:k4=\\EOS:k5=\\E[15~:k6=\\E[17~:k7=\\E[18~:\\ :k8=\\E[19~:k9=\\E[20~:k;=\\E[21~:F1=\\E[23~:F2=\\E[24~:\\ :F3=\\E[1;2P:F4=\\E[1;2Q:F5=\\E[1;2R:F6=\\E[1;2S:\\ :F7=\\E[15;2~:F8=\\E[17;2~:F9=\\E[18;2~:FA=\\E[19;2~:kb=^H:\\ :K2=\\EOE:kB=\\E[Z:kF=\\E[1;2B:kR=\\E[1;2A:*4=\\E[3;2~:\\ :*7=\\E[1;2F:#2=\\E[1;2H:#3=\\E[2;2~:#4=\\E[1;2D:%c=\\E[6;2~:\\ :%e=\\E[5;2~:%i=\\E[1;2C:kh=\\E[1~:@1=\\E[1~:kH=\\E[4~:\\ :@7=\\E[4~:kN=\\E[6~:kP=\\E[5~:kI=\\E[2~:kD=\\E[3~:ku=\\EOA:\\ :kd=\\EOB:kr=\\EOC:kl=\\EOD:km:" declare -x TMPDIR="/var/folders/Ot/Ot3uMpWLF-aFeojPSVbhHU+++TI/-Tmp-/" declare -x WINDOW="0" declare -x WINDOWID="8388614" declare -x X11_PREFS_DOMAIN="org.x.X11" declare -x __CF_USER_TEXT_ENCODING="0x1F5:0:0" 

Удаленная машина через SSH

declare -x CVS_RSH="ssh" declare -x G_BROKEN_FILENAMES="1" declare -x HISTSIZE="1000" declare -x INPUTRC="/etc/inputrc" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s" declare -x LS_COLORS="no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:" declare -x OLDPWD declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="10.1.0.110 50262 22" declare -x SSH_CONNECTION="10.1.0.110 50262 10.1.2.20 22" declare -x SSH_TTY="/dev/pts/9" declare -x TERM="xterm" 

Удаленная машина через SSH с экраном

declare -x CVS_RSH="ssh" declare -x G_BROKEN_FILENAMES="1" declare -x HISTSIZE="1000" declare -x INPUTRC="/etc/inputrc" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s" declare -x LS_COLORS="no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:" declare -x OLDPWD declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="10.1.0.110 50147 22" declare -x SSH_CONNECTION="10.1.0.110 50147 10.1.2.20 22" declare -x SSH_TTY="/dev/pts/4" declare -x TERM="xterm" 
5

2 ответа на вопрос

3
Dennis Williamson

Для первого и третьего пунктов, попробуйте установить, TERMкогда вы используете screenто же самое, что и когда вы не (или, если это уже то же самое, попробуйте установить его на «экран»).

Редактировать:

Чтобы Vim завершил работу и отобразил содержимое экрана, прежде чем запустить его во время работы под экраном, добавьте его altscreenв свой ~/.screenrcфайл.

Изменить 2:

Чтобы сделать подчеркнутый текст цветным, добавьте его в свой ~/.screenrcфайл:

attrcolor u "-u R" 

«R» обозначает ярко-красный. Строчные были бы нормальными. «Б» - синий и т. Д.

Изменить 3:

Чтобы остановить лишнее подчеркивание, добавьте это в свой ~/.screenrcфайл:

attrcolor d -d 

Первая буква «d» означает «по умолчанию». «-D» означает удалить атрибут «dim».

Я попытался изменить свой термин на screen, xterm или вообще не устанавливать его. Все с одинаковым результатом. Я опубликую свой текущий скриншот. Спасибо за помощь. Brian 13 лет назад 0
@Brian: Ваш файл запуска оболочки (например, `~ / .bashrc`) может перезаписывать` TERM`. Сделайте `echo TERM` во время работы` screen`, а пока нет, и посмотрите, соответствует ли это ожиданиям. Dennis Williamson 13 лет назад 0
Похоже, что нет. Если я использую xterm или screen в моем screenrc, это то, что он установлен, когда я запускаю screen. Перед тем, как запустить экран, мой TERM установлен на xterm. Brian 13 лет назад 0
@ Брайан: см. Мое редактирование. Dennis Williamson 13 лет назад 0
Кажется, это тоже не работает. Не уверен, что это имеет значение, но подчеркнутый текст виден, когда я перехожу на другую машину. Спасибо за вашу помощь. Brian 13 лет назад 0
@ Затем «срок» и т. Д. На * этой * машине влияют на вещи. Dennis Williamson 13 лет назад 0
Когда я сравнивал настройку TERM, я делал это, используя это соединение ssh. Если я использую ssh, не используя screen для этого сервера, и запускаю команду сборки, выходные данные будут зеленого и синего цветов, но не подчеркнуты. Если я делаю то же самое после запуска экрана на моей локальной машине, цвета все еще там, но все подчеркнуто. Brian 13 лет назад 0
@Brian: возможно, было бы полезно добавить сетку к вашему вопросу, показывая Машину A, Машину A с экраном, Машину B через ssh и Машину B локально (если вы можете) на одной оси и `TERM` и вывод` tput Сетаф 4 | hexdump -C` (только печатные символы и заполнители - это будет выглядеть примерно как ". [34m" или ". [38; 5; 4m" - используйте `od -c`, если у вас нет` hexdump`) на другой. Подчеркнуты ли синий и зеленый? Вы также получаете цвет, когда они подчеркнуты? А как насчет других цветов (попробуйте красный: `tput setaf 1; echo hello; tput sgr0`)? Dennis Williamson 13 лет назад 0
Команда tput выдает один и тот же вывод на удаленный компьютер независимо от используемого экрана - |. [34m | , И синий, и зеленый текст подчеркнуты, и они остаются тем же цветом, когда подчеркнуты. Когда я использую красную команду tput, она выводит красное слово Hello, не подчеркнутое. Это происходит одинаково независимо от используемого экрана. Brian 13 лет назад 0
@Brian: Если вы передадите свой скрипт через `hexdump`, получите ли вы где-нибудь на выходе` ^ [[4m` (escape lbracket 4 m)? Это `tput smul`, который включает подчеркивание. Кроме того, ищите 1, 5 или 7 вместо 4 (жирный, моргание и смс (выдающийся)). Потому что мне кажется странным, что * и * синий и зеленый подчеркнуты, а ручное выполнение красного - нет. Также попробуйте красный тест, как указано выше, но с синим (4) и посмотрите, делает ли это вручную подчеркивание. Dennis Williamson 13 лет назад 0
Когда вы говорите «ваш скрипт», вы имеете в виду оператор экспорта, который генерирует операторы объявления. Если это так, я запустил его через hexdump -C, и он ничего не увидел с ^ [[. Brian 13 лет назад 0
Я думаю, я понял, что вы имели в виду с моим сценарием. Я запускаю некоторые команды phing, и именно с этим выводом у меня возникают проблемы. Я вернулся и пробежал по phing через hexdump и не увидел ни одного из этих символов. Я нашел эту ссылку (http://phing.info/trac/ticket/222). Это может быть просто проблемой между Phing и экраном. Не уверен, что именно, но кто-то упоминает об этом в ссылке. Еще раз спасибо за вашу помощь. Brian 13 лет назад 0
@Brian: Сравните ваш phing `defaults.properties` с [здесь] (http://www.phing.info/trac/browser/trunk/classes/phing/listener/defaults.properties). Также см .: [это] (http://www.phing.info/trac/changeset/436). Я смог повторить твою проблему. Используя следующую команду в `screen`, я получил подчеркивание. Без экрана: без подчеркивания. `echo -e" \ e [2; 32mHello \ e [m "` Измените первые два на ноль, и подчеркивание исчезнет. Отредактируйте `classes / phing / listener / AnsiColorLogger.php` и в функции` __construct () `измените` DIM` на `NORMAL`, и вы должны быть в порядке. Или обновите до 2.4 или позже. Какая версия у тебя есть? Dennis Williamson 13 лет назад 1
Вау, много хорошей информации, Деннис. К сожалению, я не смогу это исправить. Причина, по которой я подключаюсь к этому серверу, заключается в том, что это наш веб-сервер в работе, и у каждого из нас есть свои настройки на этом сервере для разработки. Таким образом, у нас есть только одна копия Phing. В настоящее время мы работаем с версией 2.32. Сомнительно, что администратор настроит файл для двух пользователей экрана, которые у нас есть. Я очень ценю вашу помощь. Я изучил тонну через весь этот процесс. Еще раз спасибо. Brian 13 лет назад 0
@ Брайан: см. Редактировать 3. Я думаю, что мы можем избить подчеркивания! Dennis Williamson 13 лет назад 1
Потрясающие! Спасибо за помощь в этом. Я бы отдал тебе больше голосов, если бы мог. Спасибо еще раз за помощь. Я многому научился за весь этот процесс. Brian 13 лет назад 0
1
garyjohn

Вот частичный ответ.

  • Прокрутка - для прокрутки назад в окне экрана введите Ctrl-A [. Затем вы можете использовать команды перемещения и прокрутки в стиле Vim для перемещения назад через буфер прокрутки. Просто введите <esc>, чтобы выйти из этого режима.
  • Выход из Vim - Вы уже задавали этот вопрос здесь . Эти ответы не сработали?
Спасибо, что указали мне на этот вопрос. Я был повсюду и забыл, что я спросил это. Это решило проблему с выходом из vim. О прокрутке - я использую Ctrl-A [много. Я думаю, что никогда не пытался использовать его, когда прокручивал мышью. Я должен убедиться, что я всегда прокручиваю с клавиатуры. Благодарю. Brian 13 лет назад 0