Команда переназначена

Раньше я обнаружил фрагмент сценария Bash, с помощью которого можно передать строку в stderr:

echoerr() { echo "$@" 1>&2; } echoerr hello world 

Это осталось в моем буфере обмена, и когда я захотел отредактировать файл (с VIM), я случайно вставил этот фрагмент снова вместо имени файла:

 vim echoerr() { echo "$@" 1>&2; } echoerr hello world 

Кажется, что он переименовал echoerr в vim :

 $ where vim vim () { echo "$@" 1>&2; } /usr/bin/vim 

Кроме того, попытка открыть файл с VIM теперь просто возвращает имя файла обратно:

 vim path/to/some-file 

Печать:

 path/to/some-file 

Что случилось? (Я запускаю zsh внутри tmux)

2 Solutions collect form web for “Команда переназначена”

Поскольку zsh позволяет вам определить функцию с несколькими именами. От man zshmisc :

 function word ... [ () ] [ term ] { list } word ... () [ term ] { list } word ... () [ term ] command where term is one or more newline or ;. Define a function which is referenced by any one of word. Normally, only one word is provided; multiple words are usually only useful for setting traps. The body of the function is the list between the { and }. See the section `Functions'. 

Вам удалось создать функцию vim() . Это возможно, потому что zsh позволяет вам создать одну функцию с несколькими именами одновременно

 % vim dud() { echo ran dud function } % dud ran dud function % vim path/to/some-file ran dud function 

Обратите внимание, как vim() и dud() оба установлены как функции.

Вы можете убить ошибочного, отключив функцию def для него так:

 % unset -f vim 

Теперь vim path/to/some-file должен открыть ваш редактор.

  • zsh: Завершение табуляции для функции с помощью команд Git
  • Отправить копию вывода скрипта в файл
  • Связь между исполняемым скриптом zsh и конфигурацией compsys / zstyle
  • zch не работает корректно в Mint
  • Стандартный / канонический способ проверить, выводит ли предыдущий трубопровод выпуск?
  • Глобальный стек
  • Как добавить / расширить zshell доработки?
  • Используйте `/ etc / paths` или` / etc / paths.d` для добавления элементов в PATH в macOS Sierra?
  • Как я могу использовать ключ, отличный от <ENTER>, чтобы выйти из меню / виджета завершения zsh?
  • Как управлять конфигурациями на нескольких компьютерах и оболочках?
  • zsh Интерпретировать / игнорировать команды, начинающиеся с '#' в качестве комментариев
  • Linux и Unix - лучшая ОС в мире.