LINUX.ORG.RU

[zsh]rehash && bindkey

 


0

0

Как бы заставить zsh автоматически делать rehash после обновления содержимого $PATH? Пример: ставлю mcabber, установка завершена, пишу mca, пытаюсь автодополнить - чёрта с два, не видит. Делаю rehash - замечает.

Ещё вот такая трабла с биндкеем:

: bindkey "^H" htop 
: <нажимаю ^H> 
No such widget `htop' 

Что я не так делаю?

И ещё, как заставить его при просмотре истории ставить курсор в конце команд?

ZZaiatSS ★★
() автор топика
function _force_rehash() {
  (( CURRENT == 1 )) && rehash
  return 1
}

zstyle ':completion:*' completer  _oldlist _expand _force_rehash _complete

Работает, но тормозит почти как баш.

nnz ★★★★
()
Ответ на: комментарий от nnz

Этот вариант тоже пробовал, не работает.

Что-то мне начинает казаться что проблема в другом месте.. Выложу весь zshrc на всякий случай:

HISTFILE=~/.history
HISTSIZE=1000
SAVEHIST=10000
setopt  APPEND_HISTORY
setopt  SHARE_HISTORY
setopt  HIST_IGNORE_ALL_DUPS
setopt  HIST_IGNORE_SPACE
setopt  HIST_REDUCE_BLANKS

setopt AUTO_CD 

autoload -U compinit
compinit
zstyle ':completion:*' menu select

compctl -C -K cmd-comp -c
function cmd-comp {
	rehash
}
ZZaiatSS ★★
() автор топика
Ответ на: комментарий от nnz

Опа! Заработало! Странно, вроде в точности такой же конфиг пробовал раньше..

ZZaiatSS ★★
() автор топика
Ответ на: комментарий от ananas

Работает, но как-то странно. После нажатия ^H курсор убегает в начало приглашения и мигает там не реагируя на ввод. htop не появляется

ZZaiatSS ★★
() автор топика
Ответ на: комментарий от ZZaiatSS

да, сейчас проверил, с виджетами засада, zle не отдает терминал, потому такая фигня подходит только для неинтерактивных команд.

можешь сделать так - bindkey -s «^[h» «htop\n»

ananas ★★★★★
()
Ответ на: комментарий от ananas

А так вообще не работает..

такая фигня подходит только для неинтерактивных команд.

tetris работает вот

Ну ладно, это не так важно. Разобраться бы с положением курсора..

ZZaiatSS ★★
() автор топика
Ответ на: комментарий от ZZaiatSS

> А так вообще не работает..

потому что я сменил ctrl+h на alt+h

^H aka backspace на подобные вещи лучше не вешать

ananas ★★★★★
()
Ответ на: комментарий от nnz

О, так работает, благодарю

^H aka backspace на подобные вещи лучше не вешать

Все-равно я ^H по назначению не использую..

ZZaiatSS ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.