събота, 11 август 2012 г.

keybinds in console

Наскоро научих как точно се настройва коя клавишна комбинация какво прави в терминала. Сега ще споделя това знание... за да може като го забравя да си го прочета от тук :)

клавиши и комбинации

За съжаление, комбинациите не се задават в някакъв четим формат а приличат на нещо от сорта на ^[Od (ctrl + left arrow при мен) или ^[^[[D (alt + left arrow). За да разберете коя комбинация, на каква последователност отговаря стартирате read, натискате и гледате какво излиза на екрана. Ето какво излиза при alt+up, delete, end на моята машина:

[iskren ~]% read
^[^[[A^[[3~^[[8~

После заместваме ^[ със \e като пишем последователностите, т.е ^[^[[A става \e\e[A, ^[[3~ става \e[3~ и т.н.

команди

След като харесате кой клавиш искате да прави нещо, трябва и да обясните какво точно искате да прави :) За да видите списък със всички команди, в терминал (zsh only tested) натискате alt+x tab tab. В общи линии това са extended commands стил emacs но има и други.

клавишни комбинации + команди

Сега остава да напишете някъде коя комбинация, коя команда искате да стартира. Единия вариант е да ги сложите в /etc/inputrc, където формата е "combination": command. Другия е да сложите в $HOME/.zshrc bindkey "combination" command. Обърнете внимание, че комбинацията се задава в двойни кавички.