Заставьте терминал GNOME отправлять правильные коды клавиш цифровой клавиатуры в vim

Вы можете использовать xargsдля подачи значений, разделенных запятыми, в команду:

xargs -d',' yum install < inputfile.csv

Если вы хотите установить пакеты один за другим, вы можете передать флаг -n 1в xargs:

xargs -n1 -d',' yum install < inputfile.csv
  • <отправляет входной файл в xargs
  • xargs -d','принимает ',' в качестве разделителя для создания списка аргументов из входного файла для передачи их в yum.

Вы можете найти и разделить строки, начинающиеся с packagelistс помощьюawk:

</mstr/mstr_input_file.txt awk -F'=' '/packagelist=/{print $2}' | xargs -n1 -d',' yum install
2
17.11.2019, 11:35
1 ответ

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

Клавиатура может работать в двух режимах. :Когда она находится в нормальном режиме она отправляет те же символы, что и цифры в верхнем ряду. Однако, если он находится в режиме приложения , он отправляет escape-последовательности. Отображение терминала GNOME для обоих режимов одинаково, тогда как vimожидает увидеть следующие управляющие последовательности (проверяйте с помощью:set termcap):

t_KC <k0>        ^[O*p
t_KD <k1>        ^[O*q
t_KE <k2>        ^[O*r
t_KF <k3>        ^[O*s
t_KG <k4>        ^[O*t
t_KH <k5>        ^[O*u
t_KI <k6>        ^[O*v
t_KJ <k7>        ^[O*w
t_KK <k8>        ^[O*x
t_KL <k9>        ^[O*y

Чтобы использовать эти сочетания клавиш, вам нужен терминал, который корректно отправляет escape-последовательности в режиме приложения . Например, вы можете использовать xtermи переключить его на VT220 -функциональные клавиши стиля , добавив:

XTerm.sunKeyboard: true

к вашему ~/.Xresources.

Редактировать:Если вы хотите перекомпилировать libvte , вам, вероятно, следует изменить записи на что-то вроде:

static const struct _vte_keymap_entry _vte_keymap_GDK_KP_0[] = {
    {cursor_all, keypad_all, 0, "0", 1},
    {cursor_all, keypad_app, VTE_NUMLOCK_MASK, "0", 1},
    {cursor_all, keypad_app, 0, _VTE_CAP_SS3 "p", -1},
    {cursor_all, keypad_all, 0, X_NULL, 0},
};

и отправьте патч в GNOME.

4
27.01.2020, 22:07

Теги

Похожие вопросы