Я постоянно забываю менять язык в консоли, особенно для каких-то мелких команд, вроде ls, cd, rs (алиас для rails server) и получается ды, св, кы, которые, само собой, не работают.

Я решил, что хватит это терпеть и нашел решение проблемы. Для zsh есть функция command_not_found_handler. Это как method_missing из руби, только для zsh. Задаем эту функцию, например так:

function command_not_found_handler() {
  ~/.dotfiles/bin/shell_method_missing $*
}

и потом в файле ~/.dotfiles/bin/shell_method_missing на любимом языке (в моём случае на ruby) пишем обработчик. Я пока сделал только смену языка, но так можно сделать вообще, что угодно. Кто-то, например, запускает cucumber по имени .feature файла.

PS: эта же функция работает в bash, а для fish-fish шелла есть свой вариант.


comments powered by HyperComments