Невозможно эффективно использовать экран в терминале Mac

В этом посте кратко изложены проблемы использования Screen в терминале Mac, когда в вашем.zshrc есть следующее

if [[ $STY = '' ]] then screen -xR; fi 
  1. Решение № 1 не работает, но решение № 2 работает: программы буфера обмена: pbcopy, pbpaste и xsel не работают вообще
  2. Ошибка в Vim при использовании в Mac: невозможно иметь разбросанные окна в Screen.Xresources.
  3. Решено: Ctrl A перестает работать в терминале. Это говорит о том, что привязки клавиатуры экрана нужно немного изменить.
  4. Решено: прокрутка с тачпадом не работает. Редактируя ваш.screenrc, прокрутка работает нормально (включая тачпад)
  5. Решено: Невозможно использовать комбинации клавиш Дворжака для экрана для перемещения в моде Scrollback.
  6. Как вы можете использовать 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

Если я не ошибаюсь, 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

Другие вопросы по тегам