• Ubuntu помощь вопрос к юзающим zsh в убунте
    ни в одном терминале — гномовском, Guake, Terra, Xterm, UXTerm в zsh (login shell) не работает инкрементный поиск в истории
    в консоли работает, в Unity — нет
    при этом всякие прочие фичи, прописанные в моём ~/.zshrc, которых нет искаропки, работают, то есть конфиг считывается
    ни хрена не пойму
    кто-нибудь с таким сталкивался?
    PS все очевидные варианты проверял, то есть соответствующие кейбиндинги, логин ли шелл в терминале, и так далее
    сделал логин шеллом tcsh — там эта фича работает
    в баше пока не проверял — надо вспоминать, как там это делается
    ♡ recommended by @stanis, @juick

Replies (31)

  • @alv, это который по Ctrl+R?
  • @Shura, нет, не башевский
    тот, который, если ввести a и жать стрелку вверх, то из истории будут извлекаться только команды на a,если ab — на ab, и так далее
    самая полезная фича в zsh и tcsh
    в bash'е она тоже есть, но включается кривовато
  • @alv, А как не работает? Просто ничего не находит или же не даже не пытается начать искать?
  • @alv, у меня такая штука никогда не работала. Как должна выглядеть команда для его включения?
  • @cancel, перебирает все команды, как они вводились, а не на букву а
  • @Shura, в ~/.zshrc такие строки
    bindkey "^[[A" up-line-or-search
    bindkey "^[[B" down-line-or-search

    в ~/.tcshrc такие
    bindkey -k up history-search-backward
    bindkey -k down history-search-forward

    а в баше вспомнил
    "e[A": history-search-backward
    "e[B": history-search-forward
    только в ~/.inputrc
    так вот, в баше тоже не работает
    так что дело, наверное, в каком-то профильном файле из /etc

    блин, первый раз такое вижу
    мой зишевский конфиг везде работал больше десяти ле
  • @alv, так ничего не поменялось. Кажется я включал такой поиск, но он мне не понравился, уже не помню точно почему. Кажется там курсорчик всегда в первой позиции оставался, что довольно неудобно
  • @alv, Попробуйте вот такое в .zshrc (кусок из моего конфига)
    setopt no_auto_menu
    setopt auto_pushd
    setopt extended_glob
    setopt hist_ignore_all_dups
    setopt hist_reduce_blanks
    setopt histignorespace
    setopt inc_append_history
    setopt extended_history
    setopt pushd_ignore_dups
    setopt no_bang_hist
  • @cancel, ща сравню со своим, большая часть у меня есть
    и тут вопрос в том, что это не работает только в Юнити
    в консоли работает, в ксубуте работает, во всех прочих дистрах 12 лет работало
    так что дело не в самом конфиге
  • @alv, Возможно, оно как-то перехватывает клавиши.
  • @alv, кроме
    setopt extended_history
    всё есть
    но и это не помогло, конечно
  • @cancel, во всяком случае, дело явно в Юнити и её сочетании с zsh и bash
    я сначала на гномотерминал грешил — ведь всё плохое в Юнити, как известно, от Гнома
    но даже в Xterm не работает
    Бля, одно слово
  • @Shura, да нет, очень удобно
    настолько удобно, что задумываешься, а не послать ли это юнити...
  • @alv, В тильде работает из коробки, вот сейчас проверил, ничего не настраивая, попробуй её.
  • @Oksion, Сори работает какраз башевский (
  • @Oksion, а кто такая тильда?
  • @alv, терминал вроде guake всплывающий, под GTK самый удобный и функциональный ИМХО, только палитра жаль там не настраивается.
  • @Oksion, спасибо, попробую
    у меня и в bash'е не работает во всех терминалах
  • @Oksion, не, не работает
    но сама по себе штука симпотная, буду глядеть
    коллекционирую я выпадающие терминалы :)
  • @alv, При том что программа давно не обновляется, хотя есть вроде её форк. Но у меня лично она работает почему-то шустрее и стабильнее чем остальные, ну и по юзабельности на уровне.
  • @alv, Не пользуюсь zsh и не до конца понимаю вопрос, но подозреваю что дело в файле /etc/zsh/zshrc. И если я правильно понял, то достаточно будет поменять в нем эти строки
    bind2maps emacs viins vicmd — Up up-line-or-history
    bind2maps emacs viins vicmd — Down down-line-or-history
    на line-or-search
  • @altwazar, У меня сработало. Если я правильно понял, что должно было в итоге получиться.
  • @altwazar, ща попробую
    но всё равно не понятно, почему в консоли работает, в Xfce работает, и только в Unity не работает
  • @alv, Не знаю, не пользовался ни разу. Или еще можно сделать такой ~/.zshrc: pastebin.com
  • @altwazar, аднака, шаман...
    сработало
    при этом соответствующие биндкеи из домашнего .zshrc можно выкинуть
    а получилось как раз то что надо, спасибо
  • @alv, Похоже все дело в sequence="${key[$1]}", обозначение "^[[A" по какой-то причине не работает.
  • @altwazar, похоже — причём только в Юнити
    и в документации оно есть — я специально рылся, думал, чего устарело
    у меня ведь конфиг с 4.Х версии, а нынче давно на дворе 5.Х
    а мож действительно устарело, доку не переписали, и в остальных дистрах собирают для поддержки старых
    а убунта у нас же фронтирная :)
  • @alv, Вот что нашел: github.com
    Если добавить в ~/.zshenv DEBIAN_PREVENT_KEYBOARD_CHANGES=yes, то старый конфиг работает. Еще есть баг на ланчпаде, похоже это особенность Ubuntu/Gnome.
  • @altwazar, там пишут, что вроде как баг в 12.10 появился
  • @altwazar, всё верно, сейчас залез в openSUSE — там "^[[A" и "^[[B" прямо прописаны в /etc/zshrc
    и он совсем другой — точно для совместимости с 4 сделан
    хотя там 5.0.2, а в убунте 5.0.0

    в общем, несколько вариантов решения — два ваших, с ох-мой-зиш и ещё — выдрать кусок кусок конфига из сьюзиного /etc/zshrc
    все костыльные :)

    Но однаковери гран мерси, завтра на свежую голову заметочку по сему поводу набросаю
  • @alv, по мотивам: #2568857