Использование 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 ~ » 

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.

  • Как найти резервные файлы Emacs?
  • Emacs: режим-локальный макрос с тире и точками
  • Emacs ansi-term с zsh: ошибка в технологическом фильтре. Недопустимое лицо: неуказано
  • Emacs и gvim не отображают контент на FreeBSD 10.2
  • Изменение ширины столбца в emacs Ibuffer на лету
  • Как редактировать текст на кириллице / русском языке на OpenBSD?
  • vim настраивается с помощью команд emacs (только в режиме ввода)
  • Как установить LANG в локали, несмотря на то, что он находится в / etc / default / locale в ubuntu для поддержки Unicode?
  • canlock-password - hashed пароль (?) таинственным образом в .emacs
  • Как узнать имя функции внутри руля
  • Как установить emacs 24.5 на linux mint
  • автоматическая активация linum в .emacs не выполняется
  • Linux и Unix - лучшая ОС в мире.