st терминал не соблюдает мои настройки ярлыка

Вы упомянули мой комментарий по поводу rsync --remove-source-files, но если хотите взять ваш скриптовый ответ далее вот несколько советов:

Если вы просто хотите выполнить логическое сравнение любых двух файлов, включая двоичные, есть несколько более прямых маршрутов, чем стандартные diff. Во-первых, cmpвыполняет побайтовое сравнение двух файлов. Или можно просто сравнить их контрольные суммы, например, с

diff -q <(cksum file1) <(cksum file2)

Что касается пробелов в именах файлов, то это хорошо известная проблема, для которой существует множество возможных решений. Это довольно исчерпывающее изложение вещей :https://www.dwheeler.com/essays/filenames-in-shell.html. Если вы не планируете делиться своим сценарием, просто выберите любую рабочую альтернативу, которая вам больше подходит.

1
16.09.2019, 18:32
1 ответ

В назначенных по умолчанию сочетаниях клавиш в источнике stиспользуетсяXK_V(заглавная буква ).

    { TERMMOD,              XK_C,           clipcopy,       {.i =  0} },
    { TERMMOD,              XK_V,           clippaste,      {.i =  0} },
    { TERMMOD,              XK_Y,           selpaste,       {.i =  0} },

Попробуйте изменить строчные буквы XK_vобратно на (, сохранив при этом новое значениеTERMMOD).

Пояснение

XK_vи XK_Vопределены как 0x76 и 0x56 во включаемом файле X11 keysymdef.h. Они считаются разными нажатиями клавиш. Вы можете проверить это с помощью инструмента xev:

.

Без Сдвиг:

KeyRelease event, serial 47, synthetic NO, window 0x4c00001,
    root 0x4cf, subw 0x0, time 433723403, (134,121), root:(1235,171),
    state 0x0, keycode 55 (keysym 0x76, v), same_screen YES,
    XLookupString gives 1 bytes: (76) "v"
    XmbLookupString gives 1 bytes: (76) "v"
    XFilterEvent returns: False

При удерживании Shift тот же keycodeприводит к другому keysym.

KeyPress event, serial 47, synthetic NO, window 0x4c00001,
    root 0x4cf, subw 0x0, time 433724571, (134,121), root:(1235,171),
    state 0x1, keycode 55 (keysym 0x56, V), same_screen YES,
    XLookupString gives 1 bytes: (56) "V"
    XmbLookupString gives 1 bytes: (56) "V"
    XFilterEvent returns: False

Когда вы используете XK_vв сочетании с TERMMOD, а TERMMODсодержит ShiftMask, вы сообщаете st, что хотите вставить, когда принимается строчная буква v , в то время как Shift нажата. Но когда вы удерживаете Shift , X-сервер вместо этого отправляет клавишу V в верхнем регистре. Это не то, что искал st, поэтому он ничего не делает.

2
27.01.2020, 23:40

Теги

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