Как отключить автозаполнение для конкретной команды в zsh

Вопрос или проблема

Я хочу отключить автозавершение для команды 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

  1. Используйте compdef для отключения:
    Вы можете отключить автодополнение для команды make с помощью следующей команды:

    compdef -d make

    Эта команда временно отключит автодополнение для make только в текущей сессии Zsh.

  2. Отключение подсветки синтаксиса:
    Если проблема связана с плагином, таким как fast-syntax-highlighting, вы можете временно отключить его в текущей сессии. Пример:

    # Предположим, вы используете oh-my-zsh, отключите плагин:
    DISABLE_FSH=1

    Или, если плагин автоматически инициализируется, вы можете попробовать решить проблему с настройками самого плагина.

Проверка плагинов

Если вы обнаружили, что производительность ухудшается именно из-за fast-syntax-highlighting, попробуйте следующее:

  1. Измените конфигурацию плагина:
    Найдите настройки плагина и попробуйте отключить или отрегулировать функции, связанные с подсветкой синтаксиса, когда вы работаете с командой make.

  2. Проверка и удаление ненужных файлов:
    Если определённые файлы плагина замедляют работу, вы можете рассмотреть возможность их временного удаления:

    rm -rf /path/to/fast-syntax-highlighting/affected-files

Окончательное решение

Если вы хотите постоянно решить проблему автодополнения для команды make, рекомендуется либо создать специальный алиас либо изменить вашу конфигурацию Zsh:

alias make='make -B' # Запуск make с опцией, если это возможно в вашем контексте

Заключение

Таким образом, вы сможете временно отключить автодополнение для команды make и, при необходимости, улучшить производительность в сессии Zsh, связанной с плагином fast-syntax-highlighting.

Оцените материал
Добавить комментарий

Капча загружается...