Невозможно эффективно использовать Screen в терминале Mac
-
03-07-2019 - |
Вопрос
В сообщении суммируются проблемы с использованием Screen в терминале Mac, когда в вашем .zshrc есть следующее:
if [[ $STY = '' ]] then screen -xR; fi
- Решение №1 не работает, но Решение №2 работает: Программы буфера обмена:pbcopy, pbpaste и xsel вообще не работают
- Ошибка в Vim при использовании на Mac: Невозможно иметь разрозненные окна в Screen от .Xresources.
- Решено: Ctrl A перестает работать в терминале.Это подсказывает мне, что привязки клавиатуры Screen необходимо немного изменить.
- Решено: Прокрутка с помощью тачпада не работает.При редактировании вашего .screenrc обратная прокрутка работает нормально (включая сенсорную панель).
- Решено:Невозможно использовать сочетания клавиш Дворжака для экрана для перемещения в моде прокрутки.
- Как вы можете использовать pbcopy/pbpaste/xsel внутри Screen?
Решение
Обычно я решаю Ctrl-а проблема, установив для моего escape-символа значение Ctrl-я (который вам обычно не нужно использовать так часто, когда вы запускаете screen, поскольку вместо фонового процесса вы можете просто запустить новый экран).В моем .screenrc
:
escape ^Zz
Прокрутка с помощью тачпада просто не будет работать;screen действует как эмулятор терминала внутри эмулятора терминала, и screen просто не может переключать буфер обратной прокрутки в Terminal.app каждый раз, когда вы переключаетесь между экранами.Вам придется использовать функции обратной прокрутки экрана.Видеть Эта статья несколько советов по использованию функций обратной прокрутки экрана.
Другие советы
В screenrc
:
# Make xterm scrolling work properly with screen.
termcapinfo xterm-256color|xterm-color|xterm|xterms|xs|rxvt ti@:te@
Работает и для Terminal.app.
Приложение OS X Terminal по умолчанию слабое.Вместо этого получите iTerm:
Если я не ошибаюсь, iTerm решает все эти проблемы «из коробки» (моей установке уже пару лет, поэтому сейчас я не могу проверить эту теорию).
Проблема №3 может быть решена, если вы включите альтернативный экранный буфер.Использовать altscreen on
в .screenrc
Решение №1, которое не работает
Чтобы иметь возможность копировать/вставлять в OSX, поместите следующее в свой .screenrc
bind b eval "writebuf" "exec sh -c 'pbcopy < /tmp/screen-exchange'"
> Строка Th[e] - - отправляет этот файл в pbcopy - -.
Команда привязана к C-a b (в моем случае C-z b).
Решение № 2, которое работает, но печатается довольно медленно.
Используйте режим прокрутки, т.е.режим копирования
справиться
C-A [
Вставка
C-A ]
Решение отличное, поскольку оно одинаковое во всех терминальных приложениях.Он похож на буфер обмена, которым вы пользуетесь с помощью мыши.
Вопрос 5:Невозможный:Прокрутка с помощью сенсорной панели не работает.
Вы можете использовать ^A Esc для прокрутки экрана вверх.Вы не можете использовать сенсорную панель на экране.
Это решает проблему обратной прокрутки, хотя это несколько некорректно, поскольку не учитывает буферы экрана.env TERM=vt100 screen