Emacs, принимающий значение по умолчанию к emacs.d как файл

Попытайтесь делать это:

$ arrayA=(1 2 3)
$ x=A
$ var=array$x[@]
$ echo ${!var}
1 2 3

Примечание:

  • от man bash (расширение параметра):
    ${parameter}
           The value of parameter is substituted.
 The braces are required when parameter is a positional parameter with
  more than one

цифра, или когда параметр сопровождается символом, который не должен быть интерпретирован как часть его имени.
*, Если первый символ параметра является восклицательным знаком (!), уровень переменной абстракции представлен. Bash использует значение переменной, сформированной из остальной части параметра как название переменной; эта переменная затем расширена, и то значение используется в остальной части замены, а не значения самого параметра. Это известно как косвенное расширение. * Исключениями к этому являются расширения $ {! prefix*} и $ {! имя} описанный ниже. Восклицательный знак должен сразу следовать за левой фигурной скобкой для представления косвенности.

2
09.12.2013, 22:41
3 ответа

Вы получаете эту ошибку если ~/.emacs.d существует, но не каталог, читаемый Вашим пользователем. От частичного вывода ls -la ~/.emacs.d Вы дали, кажется, что Вам так или иначе удалось получить a .emacs.d каталог в корневом каталоге Вашего пользователя это принадлежит корню и не имеет никакого разрешения для Вашего пользователя.

Вы могли попробовать (как корень)

chown -R user:yourgroup /home/user/.emacs.d

где user Ваше имя пользователя и yourgroup основная группа Вашего пользователя.

7
27.01.2020, 21:53
  • 1
    Если бы это - значение этого сообщения об ошибке затем, я предложил бы, чтобы кто-то использовал M-x report-emacs-bug попросить более значимое сообщение об ошибке. В настоящий момент сообщение не полезно и на самом деле вводит в заблуждение. (Всего одно мнение.) –  Drew 10.12.2013, 03:32
  • 2
    Это изменение владельца зафиксировало его. Большое спасибо. –  MirroredFate 10.12.2013, 03:48

Если у Вас есть файл, названный ~/.emacs.d и emacs, где попытаться посмотреть в каталоге, названном ~/.emacs.d/для имена файлов init.el, он встретился бы с ошибкой, такой как это. Если у Вас есть файл, названный ~/.emacs.d, возможно, Вы могли бы переместить его в init.el и поместить его в имена каталогов ~/.emacs.d

Если не затем могла бы быть строка в Вашем наследии emacs файл конфигурации ~/.emacs, который пытается создать этот каталог.

0
27.01.2020, 21:53
  • 1
    у меня нет файла ~/.emacs.d, init.el, или /.~emacs. спасибо –  MirroredFate 10.12.2013, 00:52

Причиной может быть запуск emacs от имени пользователя root ("sudo emacs ...") перед его запуском от имени вошедшего в систему пользователя. Я сделал это при настройке своей системы и столкнулся с той же проблемой. Emacs, конечно, создает каталог .emacs.d, если он не существует, и если emacs работает от имени пользователя root, каталог будет создан с пользователем root в качестве владельца.

То же самое относится и к файлу .emacs - вы также можете проверить, кому принадлежит этот файл.

Как уже отмечалось, изменение прав владения с root на пользователя решает проблему.

0
27.01.2020, 21:53

Теги

Похожие вопросы