Использование fasd для открытия файла или каталога в emacsclient

Я пытаюсь открыть файлы, найденные с помощью fasd в emacsclient . Я использую fasd -e emacsclient -c -a '' для псевдонима. Ничего не происходит, когда я вызываю псевдоним, я просто получаю новое приглашение. Я пробовал использовать Emacs напрямую с fasd -e emacs который отлично работает. Пожалуйста, дайте мне знать, если вы знаете, в чем проблема.

EDIT : (По просьбе.


псевдоним
alias fed="fasd -e emacsclient -c -a ''"

fasd.zsh

 # # only init if installed. fasd_cache="$HOME/.fasd-init-bash" if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then eval "$(fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wc\ omp-install)" >| "$fasd_cache" fi source "$fasd_cache" unset fasd_cache # jump to recently used items alias a='fasd -a' # any alias s='fasd -si' # show / search / select alias d='fasd -d' # directory alias f='fasd -f' # file alias z='fasd_cd -d' # cd, same functionality as j in autojump alias zz='fasd_cd -d -i' # interactive directory jump 

Результаты

Должен открывать ~ / Downloads / в emacsclient , но ничего не делает:

 ~ » fed downlo ~ » 

  • emacs - вставлять текст из буфера обмена без форматирования
  • Настроить Emacs для использования Chrome в качестве веб-браузера?
  • Автоматическое шифрование Emacs и gpg
  • режим оболочки emacs (оболочка Mx)
  • Сохраните файл с сохранением файла emacs без доступа к терминалу
  • Как установить временную метку транскрипционного разговора?
  • Как сделать переносное приложение для Linux?
  • Могу ли я перевести «назад» из ssh-соединения на мой локальный emacs-сервер?
  • 3 Solutions collect form web for “Использование fasd для открытия файла или каталога в emacsclient”

    Я не понимаю, как работает fasd, но ваш псевдоним не имеет смысла.

     alias fed="fasd -e emacsclient -c -a " 

    Вы передаете emacsclient в качестве аргумента опции -e , затем -c и -a – больше параметров, переданных в fasd . Конечное пространство означает, что слово после псевдонима будет подвергаться расширению псевдонима, например, fasd -e emacsclient -c -a fasd -a foo расширяет fed a foo до fasd -e emacsclient -c -a fasd -a foo .

    Учитывая, что fasd не понимает -c как вариант, я предполагаю, что вы намеревались вызвать emacsclient -c -a '' , то есть вызвать emacsclient с тремя аргументами -c , -a и пустой строкой.

    Учитывая, что fasd интерпретирует аргумент -e :

      e*) o="${o#?}"; if [ "$o" ]; then # there are characters after "-e" local exec="$o" # anything after "-e" (…) $exec "$res" 

    нет способа передать пустую строку в качестве одного из слов в команде. Вместо этого определите вспомогательную функцию (здесь также будет работать псевдоним).

     emacsclient_c () { emacsclient -c -a '' "$@" } alias fed='fasd -e emacsclient_c' 

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

     fed() { emacsclient -c -a '' `fasd -f -a $1`; } 

    Вместо того, чтобы сообщать fasd об открытии файла в emacsclient , я просто вернул путь к emacsclient .

    Как я его работаю, это просто наложение следующих
    Этот файл передает файл emacsclient -n -c с файлом fasd.

    alias e='f -e "emacsclient -n -c"'

    Поэтому я могу набрать e exam чтобы открыть example.txt в клиенте emacs.

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