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

Раньше я обнаружил фрагмент сценария 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)

  • zsh kill Ctrl + Backspace, Ctrl + Delete
  • «Gnome-terminal -e tmux ./» постоянно открывает терминалы
  • Отметьте дескриптор как терминал для теста -t
  • Отменить параметр, используемый в команде aliased?
  • Почему не работает: while true; do "$ my_command"; сон 1; сделанный
  • Почтовая папка без указания пути к папке и требует только один аргумент
  • zsh: Повторять каждое утверждение?
  • ZSH: история поиска по клавишам вверх и вниз?
  • 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 должен открыть ваш редактор.

    Interesting Posts

    Предотвращение зависания при запуске скриптов python

    Связь rsync со специальными файлами

    ath9k загружен, но wlan0 не существует

    Есть ли способ остановить случайные пакеты программного обеспечения от удаленной передачи ваших файлов?

    Портативный Firefox Linux

    Каков правильный подход к уменьшению размера rootfs.cpio?

    Получите первое соответствие шаблону в строке, не использующей разрез

    Можно ли отключить автоматические обновления пакетов Debian?

    Имя папки изменилось, когда SCP с iPhone на сервер Synology

    Может ли hexdump отображать свои текстовые переводы в альтернативных кодировках?

    Можно ли определять зависимости yum через pip?

    Какие вещи можно безопасно удалить ради космического пространства?

    Как инициировать вызов из Polycom Intercom через Dialplan

    Один из моих pdf-файлов на моем сервере apache можно получить, а другой не может, с теми же правами и одним и тем же каталогом

    Хорошее подробное объяснение синтаксиса / etc / network / interfaces?

    Linux и Unix - лучшая ОС в мире.