Как переназначить функциональные клавиши в readline bash vi (режим оболочки vi)?

Использованиеsed:

sed -n -e '\#08/01/2017#,\#08/15/2017#w first.out' \
       -e '\#08/16/2017#,\#08/31/2017#w second.out' file.in

Это запишет все строки между строкой, содержащей 08/01/2017, и строкой, содержащей 08/15/2017(, включая ), в файл first.out. Аналогично для второго диапазона дат, но до second.out.

Это зависит от того, что файл file.inсортируется по дате.

Символ #был выбран в качестве ограничителя шаблона, поскольку шаблон уже содержит /.

0
20.12.2019, 21:05
1 ответ

Это безумие, но правда... Сегодня я был на новом сервере и совершенно забыл об этом вопросе (и ответе, спрятанном в комментариях ), я на самом деле гуглил, как это сделать сегодня. Я публикую свой ответ для себя или для всех, у кого есть проблемы с отключением ввода функциональных клавиш в командной строке vi:

  1. создайте или отредактируйте файл ~/.inputrc
  2. для отключения через (MacOS, Ubuntu, CentOS по крайней мере)используйте следующее:
set keymap vi-insert
"\e[19~":redraw-current-line
"\e[20~":redraw-current-line
"\e[21~":redraw-current-line
"\e[22~":redraw-current-line
"\e[23~":redraw-current-line

Как указывает @mosvy, перерисовка текущей строки не позволяет надоедливым "(arg: 20)" или "(arg: 21)" испортить ввод командной строки.

1
05.03.2020, 12:41

Теги

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