Подтвердить что ты не робот

Подсветка поискового запроса tmux

Когда я выполняю поиск, например, man ls в то время как в сеансе tmux строки поиска не отображаются, - страница перескакивает вниз, так что строка поиска находится в верхней строке буфера, так как ожидаемый, но он не подсвечивается.

Выполнение того же самого действия в одной и той же оболочке, но не в сеансе tmux, приводит к выделенным строкам поиска.

Я не знаю, с чего начать искать решение. Любые намеки приветствуются.

4b9b3361

Ответ 1

Исправлено. Проблема заключается в том, что screen $TERM выполняет курсив. Из tmux FAQ:

vim отображает обратное видео вместо курсива, в то время как меньше отображает курсив   (или просто обычный текст), а не наоборот. Что не так?

Это точно соответствует моей проблеме. По умолчанию $PAGER используется man less - в основном, man использует less для отображения содержимого страниц руководства. В моем случае less не выделял текст, просто отображая обычный текст.

Причина этого:

В описании терминатора экрана отсутствует курсивный режим и режим выдачи в его но используя ту же escape-последовательность, что urxvt использует для курсива. Эта означает, что приложения (например, vim), ищущие курсив, не найдут его и не смогут поверните на противоположное место, в то время как приложения (например, меньше) запрашивают выдающийся закончится курсивом вместо обратного.

Решение состоит в том, чтобы создать новый terminfo файл для tmux, который позволяет ему знать, что курсив поддерживается. Решение, описанное в (в момент написания), очень, очень низкое из tmux часто задаваемых вопросов.

После создания нового файла terminfo в tmux: C-b :source-file /absolute/path/to/.tmux.conf (из этого вопроса SuperUser) - это должно сделать tmux перезагрузить .tmux.conf файл. Однако это не сработало для меня, и изменения применяются только после перезапуска сервера tmux (закройте все сеансы tmux, а затем снова откройте их).

Ответ 2

Основываясь на "Меньше цветов для человеческих страниц" на Gen2ly, вот моя страница пользователя и как это сделать:

Предварительный просмотр

Это оболочка, а не веб-страница! Custom search highlighting in man page

Как

  • (необязательно) Я использую тему завтра для Konsole/Yakuake;
  • Отредактируйте ~/.bashrc ~/.zshrc и т.д., чтобы добавить:

    # Colored man pages: http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/
    # Less Colors for Man Pages
    export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking
    export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
    export LESS_TERMCAP_me=$'\E[0m'           # end mode
    export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    export LESS_TERMCAP_so=$'\E[38;5;016m\E[48;5;220m'    # begin standout-mode - info box
    export LESS_TERMCAP_ue=$'\E[0m'           # end underline
    export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
    
  • Перезагрузите конфигурацию и попробуйте поиск по страницам man:

    . ~/.bashrc && man ls
    

Ответ 3

Этот поток несколько лет, но по-прежнему тот, который подходит как лучший результат поиска, поэтому я отвечаю за то, что в конечном итоге сработало для меня. Это основано на часто задаваемых вопросах tmux.

... но инструкции не совсем понятны, когда или где заменить строку -256color. Я использую gnome-terminal (v 3.16.2) с tmux, и это сработало для меня:

$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen-256color"
$ infocmp "$screen_terminfo" | sed \
  -e 's/^screen[^|]*|[^,]*,/screen-256color|screen with italics support,/' \
  -e 's/%?%p1%t;3%/%?%p1%t;7%/' \
  -e 's/smso=[^,]*,/smso=\\E[7m,/' \
  -e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
  -e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo

И скажите tmux использовать его в ~/.tmux.conf:

set -g default-terminal "screen-256color"

Примечание. Я попробовал его один раз без -256color, и поскольку это не сработало (все еще видя курсив, а не выделяя), мне пришлось удалить все, что было в директории .terminfo(другой dir, называемый 's'), перед infocmp будет работать.