XKB - конфигурации не работают должным образом

Файловый редактор, указанный в POSIX -, ex, способен делать именно это.

printf '%s\n' '/1//4/s//8/' x | ex file.txt

exможет объединять несколько адресов. Таким образом, /1/означает «Перейти к» (или обратиться к )«следующая строка, соответствующая регулярному выражению 1». Затем /4/переходит от этой строки к следующей строке, соответствующей 4. И s//8/имеет обычное значение; как и в Sed, пустое регулярное выражение, переданное команде s, означает «повторно использовать последнее использованное регулярное выражение», которое в данном случае 4.

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

printf '%s\n' '/1//4/s//8/' %p | ex file.txt

Просто чтобы лучше представить несколько адресов, следующая команда удаляет первую строку, содержащуюcherryперед , первую строку, содержащую banana, после , строку 27:

printf '%s\n' '27/banana/?cherry?d' x | ex file.txt

xозначает сохранить изменения и выйти, а %pозначает «печатать весь файл».(%является синонимом 1,$, который представляет собой диапазон адресов от первой до последней строки.)

2
10.02.2020, 20:22
1 ответ

Я только что собрал следующее решение. Он не только работает в Sublime Text, но и позволяет выделять текст с сдвигом .

  1. Добавьте preserve[Shift+LevelThree] = Shift;к …/xdb/types/iso9995. Подробности на аскубунту .
  2. Добавьте type="THREE_LEVEL"иactions[Group1]= [NoAction(), NoAction(), RedirectKey(keycode=<UP>, clearmods=Lock)(до )к своим записям в /usr/share/X11/xkb/symbols/us.

Мои записи с немного другими ключами выглядят так:

key <AD07> { type="THREE_LEVEL",
   symbols[Group1]= [ u,            U,         Home,        Home ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<HOME>, clearmods=Lock) ]
};
key <AD08> { type="THREE_LEVEL",
   symbols[Group1]= [ i,            I,         Up,        Up ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<UP>, clearmods=Lock) ]
};
key <AD09> { type="THREE_LEVEL",
   symbols[Group1]= [ o,            O,         End,        End ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<END>, clearmods=Lock) ]
};
key <AC07> { type="THREE_LEVEL",
   symbols[Group1]= [ j,            J,         Left,      Left ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<LEFT>, clearmods=Lock) ]
};
key <AC08> { type="THREE_LEVEL",
   symbols[Group1]= [ k,            l,         Down,      Down ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<DOWN>, clearmods=Lock) ]
};
key <AC09> { type="THREE_LEVEL",
   symbols[Group1]= [ l,            L,         Right,      Right ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<RGHT>, clearmods=Lock) ]
};

Прочтите эту статью на Archlinux Wiki для получения более подробной информации.

Возможно, вы можете пропустить 1. и объявление типа, если вы не хотите выделять текст с помощью shift .

1
28.04.2021, 23:23

Теги

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