обяжите ключ завершать имя файла везде, где контекст находится в Zsh

Иногда я хочу имя файла вместо того, что zsh предполагает для меня. Например, у меня есть файл PNG без надлежащего .png суффикс, который заставляет zsh думать, что это не изображение и не перечислит его, когда я ввожу Tab завершать аргументы display.

Я задаюсь вопросом, существует ли сочетание клавиш, которое завершается для имени файла везде, где контекст, как ^XC для _correct_filename, или как настроить zsh, чтобы сделать вещь?

6
задан tshepang 13 October 2014 в 06:05
поделиться

1 ответ

Вы можете добавить привязку клавиш, чтобы делать то, что вы хотите:

zle -C complete complete-word complete-files
bindkey '^X\t' complete
complete-files () { compadd - $PREFIX* }

Изменить: Добавлено $ PREFIX

Вы можете добавить эти строки в ваш файл ~ / .zshrc .

При нажатии Ctrl - x Tab на каждом этапе вместо Tab в списке завершения отображаются все файлы. Вы можете выбрать другую комбинацию клавиш, которая вам подходит.

Или, чтобы дополнения ImageMagick всегда включали все файлы, попробуйте отредактировать (сначала сделайте резервную копию) файл / usr / share / zsh / functions / Completion / Unix / _imagemagick (или аналогичный) и измените его чтобы закомментировать существующую строку, которая начинается с _files , и добавить показанную новую:

if (( $# )); then
  # _files "$@" -g "*.(#i)(${~formats//:/|})(-.)"
  _files "$@"
  return
fi
7
ответ дан 17 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: