Также можно добавить новую строку только перед первой строкой каждого блока комментариев, используя sed
ветки:
sed -n '1{p;d}; /^#/{s/^/\n/;:x;p;n;/^#/bx}; /^#/!p' filename
Здесь:
1{p;d}
позволяет избежать добавления новой строки перед первой строкой.
/^#/{s/^/\n/;:x;p;n;/^#/bx}
заключается в добавлении новой строки перед каждым блоком комментариев. Вот разбивка того, что он делает:
/^#/
соответствует строкам, начинающимся с #
. Для этих строк sed
выполнит блок команд в фигурных скобках.
s/^/\n/
добавляет новую строку перед соответствующей строкой.
:x;p;n;/^#/bx
определяет метку x
, печатает пространство шаблонов (p
), заменяет пространство шаблонов следующей строкой ввода(n
)и возвращает к x
, если новое пространство шаблонов является комментарием (/^#/bx
).
/^#/!p
обычно печатает строки, не являющиеся комментариями.
РЕДАКТИРОВАТЬ :Вы также можете сделать команду недемпотентной следующим образом:
sed -n '1{p;d}; /^\s*$/bx; /^#/{s/^/\n/;:x;p;n;/^#/bx}; /^#/!p' filename
С помощью xinput list
можно легко идентифицировать устройство Elecom по имени. В этом случае строка имени будет ELECOM TrackBall Mouse HUGE TrackBall
. Поскольку устройства Elecom сообщают как об указателях, так и о клавиатурах, требуется дополнительный префикс pointer:
.
Затем необходимо идентифицировать идентификатор рассматриваемой кнопки. Используя xev
, легко увидеть, что кнопка Forward
(, расположенная рядом с Fn1
и Fn2
), имеет идентификатор 9
. Осталось включить метод прокрутки и выбрать кнопку прокрутки. Следующие две строки дополняют это:
xinput set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall" 'libinput Button Scrolling Button' 9
xinput set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall" 'libinput Scroll Method Enabled' 0 0 1
На данный момент прокрутка настроена по желанию, но кнопка еще не служит средней кнопкой. Чтобы изменить это поведение, мы переназначаем кнопки так, чтобы кнопка 9
отображалась как2
(средняя ):
xinput set-button-map $(xinput list --id-only "pointer:ELECOM TrackBall Mouse HUGE TrackBall") \
1 2 3 4 5 6 7 8 2 10 11 12
Чтобы сделать эти настройки постоянными, указанные выше строки можно поместить, например. в ~/.xinitrc
для запуска в начале сеанса Xorg.