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