Вопрос
Как указать файл инициализации emacs пользователя для загрузки с emacsclient?
emacsclient не понимает '-u user', а '-a ALTERNATE-EDITOR' не позволяет мне цитировать его и предоставлять '-u user'.
Например, работает:
/usr/bin/emacsclient -n -a '/usr/bin/emacs -u <username>' ~<username>/notes.txt
1012 * возвращается *
/usr/bin/emacsclient: error executing alternate editor "/usr/bin/emacs -u <username>"
Фон
Я использую emacs версии 23.1.1 и emacsclient версии 23.1.
emacs сам поддерживает '-u user' для загрузки файла инициализации указанного пользователя.
Я использую следующую функцию bash в моем файле псевдонимов для вызова emacs
# a wrapper is needed to sandwich multiple command line arguments in bash
# 2>/dev/null hides
# "emacsclient: can't find socket; have you started the server?"
emacs_wrapper () {
if [ 0 -eq $# ]
then
/usr/bin/emacsclient -n -a /usr/bin/emacs ~<username>/notes.txt 2>/dev/null &
else
/usr/bin/emacsclient -n -a /usr/bin/emacs $* 2>/dev/null &
fi
}
alias x='emacs_wrapper'
Введите x, а затем список файлов:
- Подключается к существующему серверу Emacs, если он работает, в противном случае запускает новый
- Выполняется как фоновый процесс
- Открывает список файлов или файл моих заметок, если файлы не предоставлены
Это прекрасно работает, когда я вошел как сам. Тем не менее, многие производственные ящики требуют, чтобы я вошел в систему как производственный пользователь. Я разделил свои псевдонимы на скрипт bash, поэтому я могу получить свои псевдонимы и функции bash просто запустив.
. ~<username>/alias.sh
К сожалению, это не позволит мне использовать мой файл .emacs (~ /. Emacs): (
Эта проблема сводит меня с ума.