Bash CTRL для перемещения курсора между словами / строками
Я привык использовать CTRL клавиша для быстрого перемещения при использовании клавиш со стрелками влево и вправо (идет до конца слова, а не по одному символу за раз).
могу ли я сделать это в Баш как-то?
Я мог бы, вероятно, кодировать его, но мне было интересно, есть ли что-то проще / уже сделано.
2 ответа:
с привязками клавиш readline по умолчанию, ALT+B возвращается на одно слово, ALT+F идет вперед одним словом.
установка Ubuntu по умолчанию дополнительно предоставляет CTRL+стрелки, как вы привыкли. Они находятся в
/etc/inputrc
и определена следующим образом:# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving "\e[1;5C": forward-word "\e[1;5D": backward-word "\e[5C": forward-word "\e[5D": backward-word "\e\e[C": forward-word "\e\e[D": backward-word
не знаю, зачем нам нужны три из них...
как объяснил Томас, вы можете добавить привязки к
/etc/inputrc
.еще одна альтернатива, поэтому он загружается каждый раз, когда вы входите в систему, помещает их в
~/.bashrc
такой:#use ctl keys to move forward and back in words bind '"\eOC":forward-word' bind '"\eOD":backward-word'
я узнал, что вы можете использовать
cat > /dev/null
чтобы посмотреть на символы, которые посылает ваша клавиатура, например, CTRL + Стрелка вправо показывает:^[OC
здесь
^[
это то же самое, что\e
так вот откуда взялся код в .вы также можете посмотрите привязки, как это:
bind -p | grep forward-word
все это довольно чертовски здорово, и я рад, что узнал еще немного власти Баш.