В документации emacsclient есть пример с аргументами% d и% s - каковы они - PullRequest
2 голосов
/ 29 октября 2010

В документации по emacsclient пример настройки РЕДАКТОРА:

EDITOR="emacsclient --alternate-editor emacs +%d %s"

Как можно использовать% d и% s?Я понимаю, что + начинается с указанной строки, и% s - это имя файла для редактирования, но какая программа заменяет% d и% s на значения?

Например, если subversion пыталась выбросить $EDITOR, emacs отредактирует 3 файла: +%d, %s и целевой файл.Есть ли программа, которая заменяет эти% d и% s следующими двумя аргументами?Документация emacs просто неверна?Почему бы вам не установить EDITOR на `emacsclient --alternate-editor emacs?

1 Ответ

2 голосов
/ 30 октября 2010

Синтаксис имитирует тот, который используется функцией printf в C и вдохновленных ею языках: %d предназначен для замены целым числом в десятичной записи, а %s предназначен для замены строкой.Тем не менее, я не знаю ни одной программы, которая будет выполнять такую ​​замену на значение $EDITOR.Это может быть квалифицировано как ошибка в руководстве по Emacs.

Существуют программы, которые интерпретируют $EDITOR как путь к исполняемому файлу (некоторые даже не ищут в $PATH), а другиеэто интерпретирует его как фрагмент оболочки, который запускает редактор (позволяя передавать дополнительные аргументы исполняемому файлу, как вы это сделали).Поэтому безопаснее всего установить EDITOR на полный путь к исполняемому файлу, не содержащий специальных символов.Используйте сценарий ретрансляции, если вы хотите передать опции, например, EDITOR=~/bin/EDITOR, где содержимое ~/bin/EDITOR что-то вроде

#!/bin/sh
exec emacsclient --alternate-editor emacs
...