GNU Emacs 23.1.1
Я задаюсь вопросом, там способ отобразить путь файла в строке состояния, вместо просто имени файла.
Я должен открыть много файлов во многих каталогах, и иногда я забываю, в каком каталоге они находятся. Просто легче отобразить часть пути в строке состояния, если это возможно.
Иногда мои пути к каталогам очень длинны.
например,
/projects/clientserver/trunk/src/client/client.c
как это в строке состояния, просто отобразите последние два каталога.
/src/client/client.c
Большое спасибо за любые предложения,
Вы просите изменить имя буфера. Вы можете настроить именование буферов с помощью uniquify . У него есть несколько методов для создания уникальных имен буферов. Наиболее очевидный выбор для вас - «вперед», который дает именно то, что вы просите - префикс имени буфера частью пути в качестве префикса.
Однако это имеет потенциально нежелательный побочный эффект. Обычно имена буферов становятся уникальными, добавляя суффикс. Когда вы выполняете 'c-x b' для переключения буферов, если вы набираете «foo» и у вас есть как «foo», так и «foo <1>», вам будет показан общий префикс и будет предоставлена возможность указать суффикс. Итак, 'c-x b foo' позволит вам выполнить завершение, где вы увидите список всех буферов «foo».
Если вы используете uniqueify в режиме «вперед», у вас будут имена буферов в форме «bar / foo» и «baz / foo». Теперь 'c-x b foo' не приведет вас к буферу foo и не позволит выполнить завершение, чтобы получить список буферов foo. Вы должны помнить префикс, который добавляется к каждому имени буфера.
Я советую использовать «обратный» режим uniqify, в котором путь к каталогу используется в качестве суффикса. Возможно, это немного менее интуитивно понятно, но на практике легче использовать. Итак, теперь у вас будут такие буферы, как «foo \ bar» и «foo \ baz», что снова дает вам преимущество, заключающееся в возможности выполнить «c-x b foo» и получить список всех буферов с именем файла «foo».
Итак, добавьте это в свой файл .emacs и посмотрите, нравится ли вам такое поведение:
(require 'uniquify)
(setq uniquify-buffer-name-style 'reverse)
Этот вариант подходит мне для установки полного пути в кадре:
(setq frame-title-format
'(:eval
(if buffer-file-name
(replace-regexp-in-string
"\\\\" "/"
(replace-regexp-in-string
(regexp-quote (getenv "HOME")) "~"
(convert-standard-filename buffer-file-name)))
(buffer-name))))
См. документацию по переменной 'формат кадра-заголовка' Он укажут вам на переменную 'режим-строка-формат' в котором подробно описываются параметры настройки заголовка
Uniquify должен практически сделать то, что вы хотите.