GNU Emacs в Windows: невозможно применить изменения файла инициализации и ввести символ тильды - PullRequest
1 голос
/ 24 августа 2011

Задача 1

Я пытаюсь настроить Emacs с помощью файла инициализации.

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

Следуя примерам документа, я написал следующую строку кода

(setq fill-column 20)

Затем сохранил файл. Но когда я запускаю Emacs, переменная fill-column все еще имеет значение 70 по умолчанию. Если я изменю эту переменную на лету, Emacs примет новое значение вместо обычного.

Интересно, что-то не хватает в файле инициализации. Должен ли я явно сказать Emacs, чтобы загрузить его? Стоит ли включать другие операторы кода, чтобы он применял изменения?

Задача 2

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

~/.emacs.d/init.el

Но как можно набирать такой символ, если его нет на моей клавиатуре, а коды ALT не работают (потому что ALT, сопровождаемый цифрами, обрабатывается как ввод команды)?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

(1) Ваш файл инициализации действительно выполняется?Вот как вы узнаете: вставьте в него что-нибудь синтаксически неправильное.Если emacs жалуется при запуске, он запускает файл - иначе проблема в том, что вы и emacs не согласны с тем, где находится ваш домашний каталог.

(2) Каждая раскладка клавиатуры Windows, о которой я знаю, имеет привязку для ~ - itможет быть комбинацией AltGr, мертвой клавишей и т. д., но она всегда есть.Панель управления системой Windows может помочь вам проверить и выбрать раскладку клавиатуры.Но если у вас действительно нет привязки для ~, вы всегда можете вместо этого набрать

<C-q> 1 7 6 / . e m a c s 

в emacs (176 - восьмеричное для 126, ASCII-код ~).

1 голос
/ 24 августа 2011

Как ясно сказано в документации для fill-column, он обычно является локальным по отношению к буферу, т. Е. Ему присваивается значение, специфичное для буфера, при создании нового буфера. Вы устанавливаете столбец заполнения буфера, который активен при выполнении .emacs, но это временный буфер, который перестает существовать до того, как вы его осмотрите.

Чтобы достичь того, что (я думаю) вы хотите, вы бы использовали (setq-default fill-column 20) ... хотя я бы советовал против этого в общем случае. (Возможно, вы хотели бы иметь очень узкое определение только для определенного набора режимов; вы бы установили эту переменную для этих буферов, используя соответствующую ловушку режима или используя средство advise.)

На ваш другой вопрос уже дан ответ, поэтому я буду игнорировать это. Пожалуйста, не размещайте несколько вопросов в одной теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...