Подсветка поискового запроса tmux
Когда я выполняю поиск, например, man ls
в то время как в сеансе tmux
строки поиска не отображаются, - страница перескакивает вниз, так что строка поиска находится в верхней строке буфера, так как ожидаемый, но он не подсвечивается.
Выполнение того же самого действия в одной и той же оболочке, но не в сеансе tmux
, приводит к выделенным строкам поиска.
Я не знаю, с чего начать искать решение. Любые намеки приветствуются.
Ответы
Ответ 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 будет работать.