rxvt-unicode (Русский) - ArchWiki

Jump to content
From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи rxvt-unicode. Дата последней синхронизации: 30 мая 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- rxvt-unicode/Советы и хитрости

rxvt-unicode — это очень настраиваемый эмулятор терминала, форк rxvt. Среди возможностей rxvt-unicode — поддержка многих языков через Юникод, прозрачность, способность отображать различные типы шрифтов и поддержка расширений Perl.

## Установка

Установите пакет rxvt-unicode. Версия с поддержкой 24-битного цвета доступна в пакете rxvt-unicode-truecolorAUR.

## Настройка

Доступные настройки и значения описаны в urxvt(1) и urxvt(7).

### Xresources

Rxvt-unicode управляется с помощью аргументов командной строки или Xresources. Аргументы командной строки имеют приоритет над параметрами ресурсов. Смотрите статью Ресурсы X для более подробной информации.

`urxvt --help` Отобразит все доступные ресурсы rxvt. Страница пользовательского руководства man page содержит полное объяснение каждого ресурса.

### Позиция полосы прокрутки

По умолчанию, когда появляется вывод оболочки, вид прокрутки автоматически переходит к нижней части буфера для отображения нового вывода. Если вы хотите, увидеть предыдущий выход (например, сообщения компилятора), установите следующие параметры в `~/.Xresources`:

    ! Не прокручивать при выводе
    URxvt*scrollTtyOutput: false

    ! прокручивать по отношению к буферу (прокрутка мышью или Shift+Page Up)
    URxvt*scrollWithBuffer: true

    ! прокрутка по нажатию клавиши
    URxvt*scrollTtyKeypress: true

### Прокрутка буфера в дополнительном экране

Когда вы прокручиваете постранично во вторичном экране (например `less` без опции`-X`), будет хорошей идеей отключить прокрутку буфера, чтобы иметь возможность постранично прокручивать сам вторичный экран, а не буфер терминала: это неизменяемое поведение по умолчанию в konsole и терминалах на основе vte.

Чтобы отключить буфер прокрутки вторичного экрана в urxvt:

    URxvt.secondaryScreen: 1
    URxvt.secondaryScroll: 0

Эта настройка работает как и ожидалось, за исключением прокрутки колесом мыши. Когда вы листаете постранично вторичный экран колесом мыши - и там было что-то в буфере прокрутки вместо страницы вторичного экрана - колесом мыши будет прокручиваться буфер прокрутки. Чтобы решить эту проблему, необходимо ввести новый параметр в rxvt-unicode[1]. Патченный rxvt-unicode доступен в пакете rxvt-unicode-better-wheel-scrollingAUR[ссылка недействительна: package not found]. После его установки добавьте следующую строку в файл настроек:

    URxvt.secondaryWheel: 1

Примечание: Не используйте эту опцию с Perl-расширением urxvt-vtwheelAUR, так как они конфликтуют.

### Методы декларации шрифта

    URxvt.font: 9x15

Тоже самое что и:

    URxvt.font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1

И, для того же шрифта bold (толстый):

    URxvt.font: 9x15bold

Тоже самое что и:

    URxvt.font: -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1

Полный список коротких имен для основных шрифтов X может быть найден в `/usr/share/fonts/misc/fonts.alias` (также есть файлы fonts.alias в некоторых других подкаталогах `/usr/share/fonts/`, но они упакованы отдельно от реальных шрифтов, и могут перечислять шрифты которые на самом деле не установлены). Стоит отметить, что эти короткие псевдонимы выбираются для версии ISO-8859-1 а не версии ISO-10646-1 (Юникод), и скорее версии 75 DPI чем 100 DPI, так что лучше избегать их, и вместо них выбирать шрифты по полному имени.

Примечание: Пункт выше только для растровых шрифтов. Другие шрифты могут быть использованы через Xft, используя следующий формат:

    URxvt.font: xft:monaco:size=10

Или

    URxvt.font: xft:monaco:bold:size=10

Примечание: Если есть дефис (`-`) в имени шрифта Xft, он должен быть экранирован обратным слэшем (`\`) дважды. Это отличается от использования опции `urxvt -fn` и от вывода команды fc-list, в которой обратный слэш всего один.

Хорошим способом для тестирования шрифтов прямо в терминале до совершения изменений в файле настроек является вывод escape-кодов в терминале, например:

    $ printf '\e]710;%s\007' "xft:Terminus:pixelsize=12"

### Расстояние шрифта

По умолчанию, расстояние между символами слишком широкое. Это контролируется параметром:

    ~/.Xresources

    URxvt.letterSpace: -1

Существуют некоторые споры [2][3] о том, как urxvt рассчитывает ширину символов. rxvt-unicode-patchedAUR изменяет расчёт, обычно приводя к более узкому расстоянию между символами.

### Цвета

По умолчанию, rxvt-unicode собран с поддержкой цвета. В дополнении к стандартным цветам переднего плана и цвету фона, rxvt может отображать до 256 цветов (плюс high-intensity bold/blinking/underlined (высокоинтенсивный жирный/мигающий/подчёркнутый) и любое сочетание из них).

Также можно указать значения цветов foreground (передний план/шрифт), background (фон), cursorColor (цвет курсора), cursorColor2 (цвет курсора2), colorBD, colorUL как число 0-15 — удобное сокращение ссылки на цвет color0-color15. Смотрите #Xresources для более подробной информации.

Примечание: По умолчанию `urxvt` использует те же цвета, что и Xterm, за исключением одного. Добавьте `URxvt.color12: rgb:5c/5c/ff` в Xresources, чтобы изменить это.

### Печать

По умолчанию rxvt-unicode распечатывает дамп экрана через lpr при нажатии `PrintScreen`. При использовании `Ctrl+PrintScreen` или `Shift-PrintScreen` в распечатку также будет включена обратная прокрутка терминала. Это поведение можно изменить или полностью отключить, исходя из личных предпочтений и потребностей.

    ~/.Xresources

    ! Запрет печати содержимого терминала при нажатии PrintScreen.
    URxvt.print-pipe: "cat > /dev/null"

### Применение настроек

После изменения настроек выполните `xrdb ~/.Xresources` для их применения. Новые настройки применяется к новым терминалам.

## Вырезать и вставить

Rxvt-unicode использует буферы вырезания, которые по умолчанию загружаются в буфер `PRIMARY`. Смотрите Selecting and pasting text для более подробной информации.

Доступ к буферу `CLIPBOARD` можно получить с помощью сочетаний клавиш `ALT-CTRL-c` и `ALT-CTRL-v` для копирования и вставки соответственно.

Примечание: Выделенный текст автоматически копируется в буфер `PRIMARY`. Perl-расширение `selection-to-clipboard`, доступное с версии rxvt-unicode 9.20, также копирует текст в буфер `CLIPBOARD`.

Если вы хотите скопировать в буфер `PRIMARY`, а также убедиться, что в буфер `CLIPBOARD` помещается то же содержимое, вы можете добавить следующее:

    URxvt.perl-ext-common:  ...,selection-to-clipboard,...

и

    URxvt.clipboard.autocopy: true
    URxvt.keysym.M-c: perl:clipboard:copy
    URxvt.keysym.M-v: perl:clipboard:paste

Смотрите также Буфер обмена#Менеджеры.

## Perl расширения

Вы можете включить расширения perl в URxvt с помощью такой строки:

    URxvt.perl-ext-common: имя_расширения_1,имя_расширения_2,...

Обратите внимание, что между именами расширения не должно быть пробелов.

### Кликабельные ссылки (URL-адреса)

Вы можете сделать URL-адреса в терминале кликабельными, используя расширение matcher. Например, для открытия ссылок в веб-браузере по умолчанию левой кнопкой мыши, добавьте следуюшее в`.Xresources`:

    URxvt.perl-ext-common: default,matcher
    URxvt.url-launcher: /usr/bin/xdg-open
    URxvt.matcher.button: 1

С rxvt-unicode 9.14, также можно использовать matcher для открытия списка последних (в настоящее время ограничено до 10) URL-адресов с помощью клавиатуры:

    URxvt.keysym.C-Delete: perl:matcher:last
    URxvt.keysym.M-Delete: perl:matcher:list

Соответствующие ссылки могут быть окрашены с помощью #Цвета переднего плана (foreground) или фона (background), например, в синий:

    URxvt.matcher.rend.0: Uline Bold fg5

В качестве альтернативы, используйте `colorUL` для цвета #RRGGBB. Это, окрасит весь подчеркнутый текст, только для ссылок matches:

    URxvt.colorUL: #4682B4

### Yankable URL'ы (без мыши)

Кроме того, вы можете выбрать и открыть URL в веб-браузере, не используя мышь. Установите пакет urxvt-perls и настройте как надо `.Xresources`. Пример показан ниже:

    URxvt.perl-ext: default,url-select
    URxvt.keysym.M-u: perl:url-select:select_next
    URxvt.url-select.launcher: /usr/bin/xdg-open
    URxvt.url-select.underline: true

Примечание: Это расширение заменяет вышеупомянутое расширение Clickable URLs, так что `matcher` можно удалить из списка `URxvt.perl-ext`.

Основные команды:

Клавиша | Описание
--- | ---
`Alt+u` | Вход в режим выбора. Будет выбран последний URL на вашем экране. Вы можете повторить `Alt+u` для выбора следующего upward URL.
`k` | Select next upward URL
`j` | Select next downward URL
`Return` | Открыть выбранный URL в браузере и выйти из режима выбора
`o` | Открыть выбранный URL в браузере без выхода из режима выбора
`y` | Скопировать (yank) выбранные URL выйти из режима выбора
`Esc` | Отменить режим выбора URL

### Простые вкладки

Чтобы добавить вкладки в urxvt, добавьте следующую строку в ваш `~/.Xresources`:

    URxvt.perl-ext-common: ...,tabbed,...

Для управления вкладками используйте:

Клавиши | Описание
--- | ---
`Shift+Down` | Новая вкладка
`Shift+Left` | Перейти к левой вкладке
`Shift+Right` | Перейти к правой вкладке
`Ctrl+Left` | Переместить вкладку влево
`Ctrl+Right` | Переместить вкладку вправо
`Ctrl+d` | Закрыть вкладку

Вы можете изменить цвета вкладок, следующими значениями:

    URxvt.tabbed.tabbar-fg: 2
    URxvt.tabbed.tabbar-bg: 0
    URxvt.tabbed.tab-fg: 3
    URxvt.tabbed.tab-bg: 0

Если вам нужно переименовать вкладку, вам, вероятно, лучше установить urxvt-tabbedexAUR.

### Полноэкранный

Вы можете установить пакет urxvt-fullscreenAUR, а затем назначить клавишу (или сочетание клавиш), чтобы привести urxvt в полноэкранный режим.

    ~/.Xresources

    ...
    URxvt.perl-ext-common: ...,fullscreen,...
    URxvt.keysym.F11: perl:fullscreen:switch
    ...

### Изменение размера шрифта на лету

Установите urxvt-resize-font-gitAUR и добавьте его список расширений Perl в файле `~/.Xresources`:

     URxvt.perl-ext-common:  ...,resize-font,...

Горячие клавиши по умолчанию:

- `Ctrl++` (или `Ctrl+Shift+=`) — увеличить размер
- `Ctrl+-` — уменьшить размер
- `Ctrl+=` — сбросить размер
- `Ctrl+?` — посмотреть текущий размер

Горячие клавиши можно изменить, например, так:

     URxvt.keysym.C-Down:  resize-font:smaller
     URxvt.keysym.C-Up:    resize-font:bigger

Чтобы заработало назначение Ctrl+Shift, нужно сперва отключить стандартные назначения (смотрите обсуждение здесь):

     URxvt.iso14755: false
     URxvt.iso14755_52: false

### Подтверждение вставки

Расширение `confirm-paste` включено по умолчанию и отображает диалог подтверждения при попытке вставить текст, содержащий управляющие символы.

Отключить его можно следующим образом:

    URxvt.perl-ext-common:-confirm-paste

### Отключение расширений Perl

Если вы не используете функции расширения Perl, вы можете улучшить безопасность и скорость, отключив расширения Perl полностью.

    URxvt.perl-ext:
    URxvt.perl-ext-common:

Чтобы выборочно отключить расширение, укажите имя расширения с дефисом перед ним. Например:

    Urxvt.perl-ext-common:-extension

Примечание: Если вы используете несколько возможностей расширения Perl, вы можете указать их последовательно, разделяя запятыми: `URxvt.perl-ext-common:default,matcher,tabbed`

## Решение проблем

### Прозрачность не работает после обновления, начиная с версии 9.09

Разработчики rxvt-Unicode удалили код совместимости для многих нестандартных установщиков обоев с этим обновлением. Использование несовместимых установщиков обоев, ломает поддержку прозрачности. Рекомендуемые установщики обоев:

- feh
- hsetroot
- esetroot

Для того, чтобы работала истинная прозрачность, убедитесь что закомментированы URxvt.tintColor и URxvt.inheritPixmap.

### Удалённые хосты

При подключении к удалённому хосту вы можете столкнуться с проблемами при запуске программ в текстовом режиме под rxvt-unicode. Это можно исправить путём установки rxvt-unicode-terminfo на удалённом хосте или с помощью копирования `/usr/share/terminfo/r/rxvt-unicode` с локального компьютера на ваш хост в `~/.terminfo/r/rxvt-unicode`; то же самое для rxvt-unicode-256color.

Некоторые удалённые системы не изменяют название автоматически, если вы не укажете TERM=xterm. Для решения добавьте на удалённой машине в .bashrc строку:

    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"'

Ещё можно попробовать добавить в .Xresources:

    URxvt*termName: rxvt

Это полезно при подключении к удалённым хостам, на которых отсутствуют права администратора и нет возможности установить определения terminfo для rxvt-unicode.

### Использование rxvt-unicode в качестве терминала gmrun

В отличие от некоторых других терминалов, urxvt ожидает аргументы `-e` определённые отдельно, а не сгруппированные вместе с кавычками. Это вызывает проблемы с gmrun, который предполагает противоположное поведение. Это можно обойти, указав "eval" перед значением терминала в `.gmrunrc`:

    Terminal = eval urxvt
    TermExec = ${Terminal} -e

(gmrun использует `/bin/sh` чтобы выполнять команды, так что "eval" здесь понимается.) "eval" имеет побочный эффект "разрыва" аргументов `-e` таким же образом, что `$@` делает в Bash, что делает команды понятными для urxvt.

### Моя цифровая клавиатура действует странно и производит странный вывод (например, в VIM)

Похоже, есть проблема у некоторых пользователей Debian GNU/Linux, хотя никаких конкретных подробностей не сообщалось. Вполне возможно, что это вызвано установкой неправильного TERM, хотя подробностей, как это может произойти, неизвестно, так как TERM=rxvt должен предложить совместимую раскладку.

Тем не менее, с помощью программы xmodmap (xorg-xmodmap), вы можете переназначить клавиши цифровой клавиатуры обратно.

1. Посмотрите в `xev` код клавиши (keycode), который генерирует ваша цифровая клавиатура.

- Запустите программу `xev`
- Нажмите цифру на вашей цифровой клавиатуре, смотрите ... keycode xxx ... в выводе `xev`. Например, клавиша 1 на некоторых клавиатурах также известна как калавиша "End", что имеет 'keycode 87'.

2. Создайте или измените ваш файл xmodmap, обычно `~/.Xmodmap`, с содержимым, представляющим свой код клавиш.

Пример Xmodmap файла с номером keycode:

    keycode 63 = KP_Multiply
    keycode 79 = Home KP_7
    keycode 80 = Up KP_8
    keycode 81 = Prior KP_9
    keycode 82 = KP_Subtract
    keycode 83 = Left KP_4
    keycode 84 = KP_5
    keycode 85 = Right KP_6
    keycode 86 = KP_Add
    keycode 87 = End KP_1
    keycode 88 = Down KP_2
    keycode 89 = Next KP_3
    keycode 90 = Insert KP_0
    keycode 91 = Delete KP_Decimal
    keycode 112 = Prior
    keycode 117 = Next

3. Загрузите ваш файл xmodmap при запуске X сессии.

Например добавьте в файл `~/.xinitrc`:

    ...
    xmodmap ~/.Xmodmap
    ...

### Горячие клавиши не работают

Смотрите Get Alt key to work in terminal.

### Низкая производительность при рисовании глифов

Некоторые программы, такие как alsamixer и xprop не хорошо выполняются с некоторыми графическими драйверами, и как следствие перерисовывают очень медленно. Опция "skipBuiltinGlyphs" в `~/.Xresources` или параметр командной строки `-sbg` может это исправить. Одним из возможных решений является добавление следующей строки в `~/.Xresources`:

    URxvt*skipBuiltinGlyphs:    true

### Очень длинные строки замедляют работу

Виновником может быть плагин `matcher`. Он сопоставляет каждую строку с регулярным выражением, и, если у вас большое значение `saveLines`, это может усугубить проблему.

Есть несколько простых обходных путей:

- Уменьшить `saveLines`
- Отключить плагин `matcher`

Если ни один из этих вариантов не устраивает, можно пойти на компромисс, отключив сопоставление URL после определённой точки отсечения:

1. Скопируйте `/usr/lib/urxvt/perl/matcher` в `~/.urxvt/ext/` (создайте каталог, если его ещё нет)
2. В файле `~/.urxvt/ext/matcher` найдите строку `my ($self, $row) = @_;` в `on_line_update` sub. Это должна быть строка 270.
3. После этой строки вставьте `return () if $row < -100;`. Это отключает сопоставление URL в любой строке, которая начинается более чем на 100 строк дальше верхней границы терминала.

## Смотрите также

- rxvt-unicode - Официальный сайт
- Source Code - Browseable CVS
- rxvt-unicode FAQ - Оффициальные ЧАВО
- rxvt-unicode Reference - Официальная страница руководства
- urxvtperl - Официальная справка расширений Perl

Category:

- Terminal emulators (Русский)

Hidden category:

- Pages with broken package links