Функции завершения ZSH сломаны

моя установка oh-my-zsh, которая работает почти год, только что сломалась. Когда я открываю терминал, я получаю:

/home/marcel/.oh-my-zsh/lib/theme-and-appearance.zsh:2: colors: function definition file not found
/home/marcel/.oh-my-zsh/oh-my-zsh.sh:78: compinit: function definition file not found
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:80: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:93: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:100: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:109: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:119: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:129: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:138: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:144: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:147: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:150: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:153: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:163: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:166: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:168: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:182: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:193: command not found: compdef
$SPACESHIP_PROMPT_TRUNC is deprecated. Use $SPACESHIP_DIR_TRUNC instead.
spaceship_setup:3: add-zsh-hook: function definition file not found
spaceship_setup:4: add-zsh-hook: function definition file not found
$SPACESHIP_PROMPT_TRUNC is deprecated. Use $SPACESHIP_DIR_TRUNC instead.
spaceship_setup:3: add-zsh-hook: function definition file not found
spaceship_setup:4: add-zsh-hook: function definition file not found

я огляделся, и многие другие ответы предлагают запустить compaudit. Запуск этого дает мне zsh: compaudit: function definition file not found.

что я пробовал:

  1. rm ~/.zcompdump*
  2. переустановка oh-my-zsh
  3. переустановка zsh из источника
  4. добавлять /usr/share/zsh/functions $fpath
  5. chown -R 755 /usr/share/zsh/functions
  6. загрузка и запуск compaudit внутри zsh -f

мое окружение:

  • uname -a:Linux Hermes 4.11.6-1-ARCH #1 SMP PREEMPT Sat Jun 17 08:19:42 CEST 2017 x86_64 GNU/Linux
  • zsh --version:zsh 5.3.1 (x86_64-unknown-linux-gnu)
  • which zsh:/usr/local/bin/zsh

изменить:

я подтвердил, что это проблема разрешения. Если я сделаю

sudo zsh -f
autoload -U compaudit
compaudit

команда работает должным образом. Я тогда делал

sudo chmod 777 /usr/share/zsh/ -R # Just for testing I promise

а я еще есть zsh: compaudit: function definition file not found при работе compaudit.

я тоже пробовал

sudo chown user:users /usr/share/zsh/ -R

и он все еще не работает. Если все эти файлы принадлежат моему пользователю и 777, как zsh работает как root, а не как мой пользователь?

13
задан quadruplebucky
13.01.2023 1:42 Количество просмотров материала 2971
Распечатать страницу

2 ответа

согласно подсказке в проблемы установки плагина colors, compinit и Git # 4757, кажется, что проверка "$FPATH переменная content" содержит правильный путь куда вы установили функции должны помочь решить проблему.

кроме того, копирование содержимого zsh в такое место, как корень или путь, уже определенный в $FPath может помочь решить эту проблему также.

первым делом сделать, это проверить вашу переменную FPATH материалам: Эхо $FPATH. В нормальной ситуации верните что-то подобное: /home/charmander/.oh-my-zsh/plugins/git:/home/charmander/.oh-my-zsh/functions:/home/charmander/.oh-my-zsh/completions:/home/charmander/.oh-my-zsh/plugins/python:/home/charmander/.oh-my-zsh/plugins/pip:/home/charmander/.oh-my-zsh/plugins/git:/home/charmander/.oh-my-zsh/functions:/home/charmander/.oh-my-zsh/completions:/usr/share/zsh/site-functions:/usr/share/zsh/5.0.2/functions.

в моем случае он вернулся: /opt/intel/composer_xe_2011_sp1.7.256/mkl/include. Когда я пытаюсь снимать. oh-my-zsh и run только zsh вернул это: /usr/share/zsh/5.0.2/scripts/newuser:6: zsh-newuser-install: function definition file not found. Поиск в Интернете я нашел этот отчет об ошибке : zsh: многие определения функций отсутствуют zsh-newuser-install, compinit, etc что допустим, переменная может быть перезаписана компилятором Intel:/

так a решение этой проблемы может быть вставить следующие строки ваш. bash_profile, если вы не можете запустить эту команду chsh-s $(которая zsh).

FPATH=/home/modelagem/beatriz.fonseca/.oh-my-zsh/plugins/python:/home/modelagem/beatriz.fonseca/.oh-my-zsh/plugins/pip:/home/modelagem/beatriz.fonseca/.oh-my-zsh/plugins/git:/home/modelagem/beatriz.fonseca/.oh-my-zsh/functions:/home/modelagem/beatriz.fonseca/.oh-my-zsh/completions:/usr/share/zsh/site-functions:/usr/share/zsh/5.0.2/functions

export FPATH

source

дополнительно согласно подсказке от цвета: файл определения функции не нашел #4607, похоже, что другие решили эту проблему, добавив $HOME/usr/share/zsh/'version of zsh'/functions решить эту проблему как установка zsh как $HOME/usr может привести к этому вопрос.


Читать Далее

   FPATH  The search path for function definitions.  The directories in this  path  are  searched
                 for  a  file  with the same name as the function or command when a function with the -u
                 attribute is referenced and when a command is not found.  If an  executable  file  with
                 the name of that command is found, then it is read and executed in the current environ-ment. environment.
                 ment.  Unlike PATH, the current directory must be represented explicitly by  .   rather
                 than by adjacent : characters or a beginning or ending :.

source


9.1 Автозагрузку Функции

функция может быть помечена как неопределенная с помощью autoload builtin (или функции -U’ или ‘верстал -фу’). Такая функция не имеет тела. Когда функция сначала выполняется, оболочка ищет ее определение используя элементы fpath переменная.

source

2
отвечен Pimp Juice IT 2023-01-14 09:30

Я просто хотел добавить короткую заметку, что эта ошибка также может произойти, если у вас установлены две отдельные версии ZSH. Убедитесь, что в вашем FPATH нет ничего, что было бы несовместимо с версией ZSH, которую вы используете для вашей реальной оболочки входа.

2
отвечен Aaron Massey 2023-01-14 11:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх