Jump to content

# xterm (Русский)

4 languages

- Deutsch
- English
- Français
- 日本語

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи Xterm. Дата последней синхронизации: 4 июля 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

xterm — стандартный эмулятор терминала для системы окон X. Он широко настраиваемый и имеет множество полезных и необычных функций.

## Установка

Установите пакет xterm.

## Настройка

### Настройка файла ресурсов

Есть несколько опций, которые вы можете задать в файле Ресурсы Х, они помогут сделать этот эмулятор терминала гораздо проще в использовании. Смотрите полный список xterm(1).

#### Переменная окружения TERM

Разрешите xterm правильно сообщать о переменной TERM. Не устанавливайте переменную TERM из ~/.bashrc или ~/.bash_profile или похожего файла. Сам терминал должен сообщить правильную TERM в систему, чтобы использовать надлежащий terminfo. Два используемых имени terminfo - xterm and xterm-256color. Чтобы установить имя, используйте ресурс

    XTerm.termName: xterm-256color

Вы можете проверить результат в xterm с помощью любой из следующих команд:

    $ echo $TERM
    $ tset -q

#### UTF-8

Убедитесь, что ваша локаль настроена на UTF-8. Если вы не используете UTF-8, вам может понадобиться заставить xterm более строго следовать вашей локале, установив

    XTerm.vt100.locale: true

#### Клавиша «Alt» ведет себя как на других эмуляторах терминала

Поведение клавиши `Alt` по умолчанию в xterm является модификатором для отправки восьмибитных входных символов, например для вставки `æ` нажмите клавиши `Alt+f`. Чтобы вместо `Alt` отправить команду `^[` (escape) (как в gnome-terminal и konsole), установите

    XTerm.vt100.metaSendsEscape: true

#### Исправление клавиши 'Backspace'

На Arch Linux xterm отправляет `^H` при нажатии клавиши 'Backspace'. Это разрывает комбинацию кнопок `Ctrl+H` на Emacs. Обходной путь заключается в том, чтобы отправить `^?`, когда нажата клавиша backspace, задав ресурсы

    XTerm.vt100.backarrowKey: false
    XTerm.ttyModes: erase ^?

#### Привязка клавиш

xterm определяет целый набор "действий" для управления терминалом, например `copy-selection()`, `hard-reset()`, `scroll-back()`и т.д. Эти действия могут быть сопоставлены с мышкой/сочетаниями клавиш с помощью `translations` ресурса. Например, можно сопоставить клавиши `Ctrl+M` и `Ctrl+R` для развертывания/восстановления окна:

    XTerm.vt100.translations: #override \n\
        Ctrl <Key>M: maximize() \n\
        Ctrl <Key>R: restore()

`#override` указывает на то, что эти привязки клавиш должны переопределить любые существующие (вы почти всегда хотите этого для пользовательских сочетаний клавиш). Каждая привязка должна быть отделена escape-последовательностью `\n`. Если вы хотите вставить литеральную новую строку, она также должна быть escaped (следовательно `\n\`). Смотрите раздел KEY BINDINGS xterm(1) для полного списка действий и множество примеров.

Совет: Вы можете также иметь отдельные наборы комбинаций клавиш, между которыми можете переключаться. Смотрите действие `keymap()` на man-странице.

### Прокрутка

Когда новые строки записываются в нижней части окна xterm, старые строки исчезают сверху. Для прокрутки вверх и вниз по строкам можно использовать колёсико мыши, комбинации клавиш `Shift+PageUp` и `Shift+PageDown`, или полосу прокрутки.

По умолчанию сохраняется 1024 строки. Вы можете изменить сохраняемое количество строк ресурсом `saveLines`,

    XTerm.vt100.saveLines: 4096

Другие ресурсы X, влияющие на прокрутку — `jumpScroll`, `multiScroll` и `fastScroll` (все в `XTerm.vt100`, см. xterm(1)). Для прокрутки внутри #альтернативного экрана установите параметру `alternateScroll` значение `true`.

#### Полоса прокрутки

Полоса прокрутки по умолчанию не отображается. Она может быть включена, а её внешний вид изменён настройками ресурсов (обратите внимание на различную капитализацию "полосы прокрутки"!)

    XTerm.vt100.scrollBar: true
    XTerm.vt100.scrollbar.width: 8

Смотрите xterm(1) для получения информации о других ресурсах прокрутки.

Полоса прокрутки управляется иначе, от того что вы может быть привыкли использовать

- Для прокрутки вниз:

  – Нажмите на полосу прокрутки левой кнопкой мыши или
  – Нажмите на полосу прокрутки внизу средней кнопкой мыши.

- Для прокрутки вверх:

  – Нажмите на полосу прокрутки правой кнопкой мыши или
  – Нажмите на полосу прокрутки вверху средней кнопкой мыши.

- Чтобы разместить текст, двигаясь в любом направлении:

  – Наведите на край и используйте «щелчок и перетаскивание» с помощью средней кнопки мыши

### Меню

xterm компилируется с отключённым toolbar, или menubar. Меню по-прежнему доступно как всплывающие окна при нажатии сочетания клавиш `Ctrl+MouseButton` в окне xterm. Действия, вызываемые элементами меню, часто могут выполняться с использованием параметров командной строки или путем задания значений ресурсов.

Совет: Если окна всплывающего меню отображаются только как маленькие поля, это, вероятно, потому, что у вас есть строка, подобная этой, `XTerm*geometry: 80x32`, в вашем файле ресурсов. Это запускает основное окно xterm с размерами 80 столбцов и 32 строками каждый из них, но также заставляет окно меню составлять 80 пикселей на 32 пикселя! Вот почему вы должны полностью указать ресурс:

    XTerm.vt100.geometry: 80x32

Некоторые из опций меню обсуждаются ниже.

#### Главные опции меню

Ctrl + LeftMouse

- `Secure Keyboard` пытается обеспечить, чтобы только окно xterm получало ваши нажатия, а никакие другие приложения. Дисплей переключается на обратное видео при его вызове. Если на дисплее нет обратного видео, режим Secure Keyboard не действует. Пожалуйста, прочитайте раздел "БЕЗОПАСНОСТЬ" man-страницы xterm для ограничений этого параметра.

- `Allow SendEvents` позволяет другим процессам отправлять нажатия клавиш и события мыши в окно xterm. Из-за угрозы безопасности не включайте его, если вы не уверены, что знаете с этим параметром делать.

- `Log to File` – Файл журнала будет иметь имя `Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX`. Этот файл будет содержать весь напечатанный вывод и все перемещения курсора. Ведение журнала может иметь риск для безопасности.

- Шесть пунктов меню `Send *** Signal` не всегда полезны, за исключением, когда ваша клавиатура неисправна. `HUP`, `TERM` и `KILL` закроют окно xterm. `KILL` следует избегать, так как он не позволяет запускать код очистки.

- Пункт меню `Quit` также закроет окно xterm - это то же самое, что и отправка сигнала `HUP`. Большинство пользователей будут использовать комбинацию клавиш `Ctrl+d` или наберут `exit`, чтобы закрыть экземпляр xterm.

#### Опции меню VT

Ctrl + MiddleMouse

- `Select to Clipboard` – обычно выбранный текст сохраняется в PRIMARY, который должен быть вставлен с помощью `Shift+Insert` или с помощью средней кнопки мыши. Переключив эту опцию в on, выбранный текст будет использовать CLIPBOARD, позволяющий вставлять текст, выбранный в окне xterm, в приложение GUI с помощью `Ctrl+v`. Соответствующим ресурсом является `XTerm.vt100.selectToClipboard`.

- `Show Alternate Screen` – когда вы используете приложение терминала, такое как vim, или less, открывается альтернативный экран. Главное окно VT, которое сейчас скрыто, остается в памяти. Вы можете просмотреть это главное окно, но не вызывать никаких команд в нем, переключив этот пункт меню. Вы можете выбрать и скопировать текст из этого главного окна.

Совет: Приостановка процесса, выполняющегося на альтернативном экране, а затем возобновление его работы обеспечивает больше функциональности, чем при использовании `Show Alternate Screen`. С оболочкой bash нажатие `Ctrl+z` приостанавливает процесс; затем выдает команду `fg` и возобновляет ее.

- `Show Tek Window` и `Switch to Tek Mode` – Tektronix 4014 был графическим терминалом 1970-х годов, используемым для САПР и построения приложений. Программа командной строки `graph` из plotutils и приложение gnuplot могут быть использованы для использования эмуляции Tek; большинство людей предпочтут более современные варианты отображения данных. Смотрите демонстрацию Tek 4014 ниже.

#### Шрифты меню VT

Ctrl + RightMouse

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

Совет: `Unreadable` и `Tiny` полезны, если вы хотите следить за процессом, но не хотите выделять большое количество пространства экрана в окно терминала. Пример использования может быть длительным процессом компиляции, когда вы хотите только увидеть, что операция завершена.

- `Selection` при использовании имен шрифтов XLFD позволяет переключиться на имя шрифта, сохраненное в выборе PRIMARY (или CLIPBOARD).

#### Опции меню Tek

Из окна Tek Window, Ctrl + MiddleMouse

Параметры первого раздела позволяют изменять размер шрифта окна Tek. Второй набор опций используется для перемещения фокуса между окном эмуляции Tek и основным или VT, а также закрытием или скрытием окна Tek.

### Копирование и вставка

Выделение текста выполняется с помощью мыши в xterm (или, как альтернатива, в другом приложении), сначала выберите текст для копирования, а затем нажмите среднюю кнопку мыши, чтобы вставить выделенный текст. Также комбинация клавиш `Shift+Insert` вставляет выделенный текст, но только внутри xterm

#### PRIMARY или CLIPBOARD

This article or section needs expansion.

Reason: Separate shortcuts for CLIPBOARD can be defined instead of using Select to clipboard, similar to VTE-like terminals. See e.g [1] (Discuss in Talk:Xterm (Русский))

По умолчанию xterm и многие другие приложения, использующие X, копируют выделенный текст в буфер, называемый PRIMARY-выделением. PRIMARY недолговечен — популярный текст сразу заменяется новым выбором PRIMARY, как только выделяется другой фрагмент текста. Некоторые приложения позволяют вставлять PRIMARY-выделения, используя среднюю кнопку мыши, но не `Shift+Insert`, а некоторые другие приложения могут полностью не вставлять содержимое буфера PRIMARY.

Существует ещё один буфер, используемый для скопированного текста, называемый CLIPBOARD выбор. Текст в CLIPBOARD долговечен, оставаясь доступным до тех пор, пока пользователь не перезапишет его. Приложения, использующие `Ctrl+c` и `Ctrl+x` для операций копирования и вырезания текста и `Ctrl+v` для вставки, используют CLIPBOARD.

Мимолетный характер PRIMARY выбора, где скопированный текст теряется, как только выделяется другой, раздражает некоторых пользователей. Xterm позволяет пользователю переключаться между использованием PRIMARY и CLIPBOARD с помощью `Select to Clipboard` в меню VT или с ресурсом `XTerm.vt100.selectToClipboard`.

#### PRIMARY и CLIPBOARD

С приведенной выше настройкой вы можете выбрать, хотите ли вы использовать PRIMARY или CLIPBOARD, но вы также можете взломать его, чтобы добавить выделение в оба. Просто отмените привязку клавиш для отпускания левой кнопки мыши:

    <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)

Вы можете добавить привязки клавиш похожие на поведение копирования/вставки других терминалов (например, терминал gnome):

    Ctrl Shift <Key>C: copy-selection(CLIPBOARD) \n\
    Ctrl Shift <Key>V: insert-selection(CLIPBOARD)

#### Выбор текста

Новый пользователь обычно обнаруживает, что текст может быть выбран с помощью "щелчка мышью и перетаскивания" левой кнопки мыши. Двойным щелчком выбирается слово, в котором слово определяется как последовательные буквенные символы плюс символ подчеркивания или основное регулярное выражение (BRE) `[A-Za-z_]`. Трехкратное нажатие выбирает строку с символом "tab", который обычно копируется как несколько "пробельных" символов.

Другой способ выбора текста, особенно полезный при копировании более одного полного экрана, заключается в следующем:

1. Щелкните левой кнопкой мыши в начале предполагаемого выбора.
2. Прокрутите список до тех пор, пока не будет выделен конец выделения.
3. Щелкните правой кнопкой мыши в конце выделения.

Вы не обязаны сразу попасть в нужное вам место щелчком правой кнопки мыши - любой выделенный фрагмент может быть расширен или сокращен с помощью правой кнопки мыши.

Вы можете удалить любой выделенный текст, щелкнув левой кнопкой мыши один раз, в любом месте окна xterm.

Когда в xterm запускается приложение на основе символов, ему разрешено принимать события мыши. Это может быть проблемой, если программа не может взаимодействовать с буфером обмена X11. Чтобы передать эти события в основной xterm, они должны сопровождаться клавишей `Shift`. Например, в links (не `xlinks -g`) можно щелкнуть среднюю кнопкой мыши по URL-адресам и пунктам меню, но при этом ничего не выбирется и не вставится. Чтобы скопировать, нажмите клавишу `Shift`, а затем выполните щелчки мыши (клавиша должна быть нажата только во время щелчка, поэтому нет необходимости удерживать ее при перетаскивании мыши, чтобы выбрать, например, текстовый блок).

## Цвета

Xterm по умолчанию имеет черный текст, цвет переднего плана, на белом фоне. Цвета переднего плана и фона могут быть отменены путем установки ресурса

    XTerm.vt100.reverseVideo: true

Кроме того, вы можете напрямую изменять цвета переднего плана и фона (а также первые шестнадцать цветов терминала) с использованием ресурсов:

    XTerm.vt100.foreground: white
    XTerm.vt100.background: black
    XTerm.vt100.color0: rgb:28/28/28
    ! ...
    XTerm.vt100.color15: rgb:e4/e4/e4

Примечание: Цвета для приложений, которые используют библиотеки X, могут быть указаны разными способами.

Некоторые цвета могут быть указаны назначенными именами. Если emacs или vim установлены, вы можете изучить `/usr/share/emacs/*/etc/rgb.txt` или `/usr/share/vim/*/rgb.txt` чтобы просмотреть список названий цветов с их десятичными значениями RGB. Цвета могут также указываться с использованием шестнадцатеричных значений RGB с форматом `rgb:RR/GG/BB`, или более старым и не поощряемым синтаксисом `#RRGGBB`.

Цвет `PapayaWhip` совпадает с `rgb:ff/ef/d5`, который такой же, как и `#ffefd5`.

Смотрите X(7) из xorg-docs, для получения более полного описания синтаксиса цвета.

Многие предложения по цветовым схемам можно просмотреть в разделе форума, Terminal Colour Scheme Screenshots.

Совет: Многие люди задают цвета в своих файлах ресурсов X без указания класса приложения или экземпляра приложения:

    *foreground: rgb:b2/b2/b2
    *background: rgb:08/08/08

В приведенном выше примере устанавливаются значения переднего плана и заднего фона для всех приложений Xlib (xclock, xfontsel и другие), которые используют эти ресурсы. Это хороший и простой способ достижения единой цветовой схемы.

## Шрифты

### Стандартные шрифты

По умолчанию шрифт xterm - это шрифт растрового изображения, названный `фиксированным` псевдонимом X Logical Font Description, часто разрешающими

    -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-?

Этот шрифт также псевдоним имени `6x13`, имеет очень широкий охват символов Unicode. По умолчанию шрифт TrueType - это 14-точечный шрифт, сопоставляемый именем `mono`. С помощью этой команды можно найти шрифт FreeType , который будет использоваться:

    $ fc-match mono

Шрифты могут быть указаны в ваших ресурсах в зависимости от шрифта TrueType или нет:

    XTerm.vt100.faceName: Liberation Mono:size=10:antialias=false
    XTerm.vt100.font: 7x13

Чтобы проверить, вы также можете установить шрифт в командной строке: `-fa` для `faceName`, `-fn` для `font`. Если вы устанавливаете оба типа шрифтов, вы можете чередовать их между собой двумя способами: `TrueType Fonts` из меню VT. Вы также можете выбрать значение по умолчанию со следующим ресурсом

    ! start with TrueType fonts disabled
    XTerm.vt100.renderFont: false

### Жирные и подчеркнутые шрифты

Курсивные шрифты отображаются как подчеркнутые символы при использовании имен XLFD в xterm. Шрифты TrueType должны использовать наклонный шрифт.

Если вы не укажете жирный шрифт в командной строке `-fb` или через ресурс `XTerm.vt100.boldFont`, xterm попытается найти жирный шрифт, соответствующий нормальному шрифту. Если соответствующий шрифт не найден, жирный шрифт будет создан путем "чрезмерного" обычного шрифта.

### Шрифты CJK

Многие шрифты не содержат глифов для двукратного китайского, японского и корейского языков. Другие эмуляторы терминала, такие как urxvt, могут лучше подходить, если вы часто работаете с этими языками.

Использование растровых XLFD-шрифтов с CJK несёт много ошибок в xterm. Гораздо проще использовать шрифты TrueType для отображения CJK, используя ресурс `faceNameDoublesize`. В этом примере используется DejaVu Sans Mono как обычный шрифт и WenQuanYi WenQuanYi Bitmap Song в качестве шрифта двойной ширины:

    XTerm.vt100.faceName: DejaVu Sans Mono:style=Book:antialias=false
    XTerm.vt100.faceNameDoublesize: WenQuanYi WenQuanYi Bitmap Song
    XTerm.vt100.faceSize: 8

## Советы и рекомендации

### Автоматическая прозрачность

Установите пакет transset-dfAUR и композитный менеджер, такой как Xcompmgr. Затем добавьте следующую строку в `~/.bashrc`:

    [ -n "$XTERM_VERSION" ] && transset-df --id "$WINDOWID" >/dev/null

Теперь, каждый раз, когда вы запускаете оболочку в xterm и запущен композитный менеджер, окно xterm будет прозрачным. Проверка перед `transset-df` запрещает выполнение transet, если параметр `XTERM_VERSION` не определен. Обратите внимание, что ваш терминал не будет прозрачным, если вы запускаете программу, отличную от оболочки. Вероятно, это можно обойти, если вы хотите использовать эту функциональность.

Смотрите также прозрачность для каждого приложения.

### Включение срочного звонка

Чтобы символ колокола уведомил оконный менеджер срочности, установите:

    XTerm.vt100.bellIsUrgent: true

### Советы по шрифтам

#### Использование цвета вместо жирного и курсивного

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

    ! отключаем жирный шрифт и вместо него делаем текст синим.
    XTerm.vt100.colorBDMode: true
    XTerm.vt100.colorBD: rgb:82/a4/d3
    ! отключаем подчеркнутый текст и вместо него делаем его белым.
    XTerm.vt100.colorULMode: true
    XTerm.vt100.colorUL: rgb:e4/e4/e4
    ! аналогично использовать colorIT для курсива

Смотрите цвет для форматирования информации.

#### Настройка расстояния между строк

Строки текста иногда могут быть слишком близко находиться друг к другу, или они могут оказаться слишком далеко друг от друга. Например, используя DejaVu Sans Mono, низкий символ подчеркивания может приклеиваться к глифам CJK или курсорному блоку в строке ниже. Межстрочный интервал, называемый ведущим по типографам, может быть отрегулирован с помощью следующего ресурса, например, чтобы расширить интервал:

    XTerm.scaleHeight: 1.01

Допустимые значения этого диапазона от `0.9` до `1.5`, при этом `1.0` является значением по умолчанию.

### Демонстрация Tek 4014

Если у вас установлен plotutils, вы можете использовать эмуляцию Tektronix 4014 для просмотра некоторых тестовых файлов пакета plotutils. Откройте окно Tek из пункта меню VT `Switch to Tek Mode` или запустите новый экземпляр xterm, используя следующую команду:

    $ xterm -t -tn tek4014

Ваш запрос PS1 не будет отображаться правильно, если он вообще появится. В новом окне введите команду,

    cat /usr/share/tek2plot/dmerc.tek

В окне Tek появится карта мира. Вы также можете просмотреть другие файлы `*.tek` из того же каталога. Чтобы закрыть окно Tek, вы можете использовать меню xterm.

### Защита от отслеживания ввода X11

Возможно неудобно активировать режим Secure Keyboard из главного меню. Вместо этого вы можете вызвать действие `secure()` с помощью привязки клавиш:

    Ctrl Alt <Key>S: secure()

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

### Мерцание при прокрутке

Важно: Двойная буферизация может привести к неправильному отображению растровых изображений.

Перестройте xterm с использованием ABS и включите флаг `--enable-double-buffer`:

    ./configure --prefix=/usr \
         ...
         --with-utempter \
         --enable-double-buffer

Подробнее смотрите в Xterm изменениях.

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

- Скрытые драгоценные камни Xterm
- Комментарии ресурсов XTerm
- Внедрение XTerm и настройка шрифтов TrueType

Category:

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

Hidden category:

- Pages or sections flagged with Template:Expansion