Вопрос или проблема
Я хочу отключить автозавершение для команды make
, чтобы, когда я ввожу make <tab>
, zsh не пыталась анализировать Makefile. Это должно быть сделано временно (например, только для этой сессии zsh, так что удаление файлов не является решением).
У меня есть Makefile объемом 228k строк, и zsh зависает, когда я пытаюсь что-то make
там. Я пробовал unfunction _make
и compdef -d make
. Они не работают.
Я использую ничего особенного, только compinit
, который идет в комплекте с zsh.
Оказалось, что не автозавершение ужасно медленное, а быстрая подсветка синтаксиса. Удаление соответствующих файлов из плагина решило мою проблему.
Ответ или решение
Чтобы временно отключить автодополнение для определенной команды в Zsh, например для команды make
, вы можете использовать встроенные возможности команды compdef
. Однако, если вы столкнулись с тем, что автодополнение замедляется из-за большого размера Makefile, и это связано с плагином, таким как fast-syntax-highlighting, есть несколько решений:
Отключение автодополнения для make
-
Используйте
compdef
для отключения:
Вы можете отключить автодополнение для командыmake
с помощью следующей команды:compdef -d make
Эта команда временно отключит автодополнение для
make
только в текущей сессии Zsh. -
Отключение подсветки синтаксиса:
Если проблема связана с плагином, таким как fast-syntax-highlighting, вы можете временно отключить его в текущей сессии. Пример:# Предположим, вы используете oh-my-zsh, отключите плагин: DISABLE_FSH=1
Или, если плагин автоматически инициализируется, вы можете попробовать решить проблему с настройками самого плагина.
Проверка плагинов
Если вы обнаружили, что производительность ухудшается именно из-за fast-syntax-highlighting, попробуйте следующее:
-
Измените конфигурацию плагина:
Найдите настройки плагина и попробуйте отключить или отрегулировать функции, связанные с подсветкой синтаксиса, когда вы работаете с командойmake
. -
Проверка и удаление ненужных файлов:
Если определённые файлы плагина замедляют работу, вы можете рассмотреть возможность их временного удаления:rm -rf /path/to/fast-syntax-highlighting/affected-files
Окончательное решение
Если вы хотите постоянно решить проблему автодополнения для команды make
, рекомендуется либо создать специальный алиас либо изменить вашу конфигурацию Zsh:
alias make='make -B' # Запуск make с опцией, если это возможно в вашем контексте
Заключение
Таким образом, вы сможете временно отключить автодополнение для команды make
и, при необходимости, улучшить производительность в сессии Zsh, связанной с плагином fast-syntax-highlighting.