Comments 21
Осталось чтобы выод сохранялся автоматически, и не приходилось помнить о том, что в начало каждой второй команды надо допихать вызов ah.
Я как раз сейчас с этим экспериментирую (
preexec
в zsh и его эмуляция в bash), и на самом деле это изначальная цель. Но пока не все так гладко, особенно с bash'ем. В основном, все работает, но когда что-то отваливается, приходится мучительно все отключать и чесать голову, как подебажить. Так что пока без этого.Я только что тоже пытался сделать это через preexec в zsh но ни чего не вышло. Я тупо не понял как повлиять на саму команду, а не просто выполнить что-то рядом с ней.
Зато для zsh я смог получить в общем-то желаемый результат… Вот пример:
Зато для zsh я смог получить в общем-то желаемый результат… Вот пример:
add-time() { [[ $BUFFER = time* ]] || BUFFER="time $BUFFER"; zle .$WIDGET "$@"; }
zle -N accept-line add-time
Примерно вот так можно в zsh:
Единственное, что останавливает: пока очень плохо работают приложения с ncurses. Ищу сейчас, каким образом можно их правильно запускать, но прогресса мало (в частности
function execute_with_ah {
BUFFER="ah t -- $BUFFER"
zle accept-line
}
zle -N execute_with_ah_widget execute_with_ah
bindkey '^J' execute_with_ah_widget
bindkey '^M' execute_with_ah_widget
Единственное, что останавливает: пока очень плохо работают приложения с ncurses. Ищу сейчас, каким образом можно их правильно запускать, но прогресса мало (в частности
ah t -- htop
лучше не делать).Ну можно сделать локальный костыль в виде исключения их в функции execute_with_ah по маске…
А тем временем htop, vim сотоварищи заработали.
UFO just landed and posted this here
Спасибо! Как и с другими хорошими идеями, я до вашего поста даже не задумывался о проблеме, а после удивляюсь, как же сам не додумался до такой штуки. :-)
есть утилитка script. Она забавнее вашей.
А где на неё можно посмотреть, ибо гуглить «script» – занятие бесполезное.
Смутно подозреваю, что речь вот про это — unixhelp.ed.ac.uk/CGI/man-cgi?script
Угу, isden прав.
Ох нет, и вот почему: дело в том, что все шелы работают с историей в предположении, что никто, кроме них в файл с историей лазить не будет, поэтому ah поступает несколько хитрее, чем просто привязывается к номеру (к номеру из
В общем, я пока просто не представляю, как это должно выглядить и работать.
HISTFILE
привязываться, конечно, можно, но это работает только с несколькими довольно жесткими предположениями). Поэтому синхронизация истории в отрыве от синхронизации HISTFILE
— занятие бессмысленное. С тем же успехом можно просто rsync'ать ~/.ah
:)В общем, я пока просто не представляю, как это должно выглядить и работать.
Прекрасно, спасибо.
Подскажите как у вас работает garbage collecting? Оно удаляет все или что-то определенное? Просто сборка муссора ассоциируется с чем-то, что работает само в фоне и удаляет мусор по каким-то критериям :)
Подскажите как у вас работает garbage collecting? Оно удаляет все или что-то определенное? Просто сборка муссора ассоциируется с чем-то, что работает само в фоне и удаляет мусор по каким-то критериям :)
Круто, мысли людей сходятся, только кто-то думает и делает быстрее!
Sign up to leave a comment.
ah — лучше, чем history