Псевдонимы с длинными именами для путей к файлам и каталогам в emacs

В документации по Emacs я прочитал, что Emacs поддерживает хранение имен файлов в регистрах, что позволяет пользователю быстро получить их с помощью команды C-x r j r, где r — имя регистра. Однако это, по-видимому, ограничено односимвольными именами регистров.

Например. Следующий пример работает:

(set-register ?c '(file . "/gd/gnu/emacs/19.0/src/ChangeLog"))

то есть это позволяет мне посетить файл ChageLog выше, просто набрав C-x r j z.

Однако, если я попытаюсь сохранить путь к указанному выше файлу в реестре с более длинным именем, например:

(set-register ?clog '(file . "/gd/gnu/emacs/19.0/src/ChangeLog"))

Я получаю следующее сообщение об ошибке от интерпретатора Lisp:

Неверный синтаксис чтения: "?"

Тогда мой вопрос: существует ли (простой) способ хранения имен файлов (и путей к каталогам) в emacs с использованием псевдонимов с длинными именами, чтобы я мог быстро их посетить? (для редактирования файла или загрузки его в каталог).

Спасибо


person Amelio Vazquez-Reina    schedule 16.12.2010    source источник


Ответы (3)


См. Закладки.

person huaiyuan    schedule 16.12.2010
comment
Спасибо Хуайюань. Я изучаю это, но похоже, что основная функция закладок — дать пользователю возможность записывать позиции, на которые вы можете перейти позже. Как я могу использовать закладки для хранения предопределенного пути, который я могу ввести вручную и который будет сохраняться в сеансах Emacs? - person Amelio Vazquez-Reina; 16.12.2010
comment
Вы хотите запомнить путь к файлу (например, для извлечения) или хотите посетить файл (или каталог). Если второе, то закладки — это точно то, что вам нужно. Откройте файл/каталог, затем C-x r m (enter a name) RET, чтобы сохранить его. Если вы сейчас убьете этот буфер, вы сможете посетить его с помощью C-x r b (bookmark name) RET. Закладки сохраняются -- Emacs спросит вас, хотите ли вы сохранить свои закладки при выходе (или вы можете использовать M-x bookmark-save, чтобы сделать это немедленно). - person phils; 17.12.2010
comment
Вы спрашиваете, как ввести местоположение закладки вручную, без посещения файла и т. д.? Если да, то вот ответ (Bookmark+). Кроме того, вы всегда можете использовать команду bookmark-relocate для изменения целевого файла (пути), связанного с закладкой. - person Drew; 02.11.2011

Регистры в Emacs спроектированы так, чтобы к ним можно было получить доступ нажатием одной клавиши, поэтому они именуются символами. Синтаксис ?x является символьным синтаксисом. Вы можете сохранить пути в обычных переменных или использовать хеш-таблицу, чтобы не загрязнять пространство имен переменных, но я не знаю существующего пакета для этого и только для этого.

Я считаю, что более распространенный вариант использования — просто держать файлы, к которым вы хотите быстро/часто обращаться, открытыми и сохранять состояние сеанса. Переключение между буферами можно сделать более удобным с помощью чего-то вроде iswitch.

Я также не понимаю, почему Закладки не соответствуют вашим случай использования. Если вы действительно хотите ввести путь вручную, (add-to-list 'bookmark-alist '(bookmarkname (filename . "/path/to/your/file"))), похоже, работает, хотя один раз посетить файл и сохранить закладку проще.

person Ramarren    schedule 16.12.2010

Вы можете добавить файл в закладки, фактически не посещая его. Похоже, это то, о чем вы просите: способ указать абсолютное имя файла и получить к нему закладку (чтобы вы могли использовать более короткое имя закладки).

Bookmark+ — это то, что вам нужно:

http://www.emacswiki.org/emacs/BookmarkPlus#BookmarkingWithoutVisiting

закладкизакладка

person Drew    schedule 20.08.2011