Путь дисплея файла в строке состояния

GNU Emacs 23.1.1

Я задаюсь вопросом, там способ отобразить путь файла в строке состояния, вместо просто имени файла.

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

Иногда мои пути к каталогам очень длинны.

например,

/projects/clientserver/trunk/src/client/client.c

как это в строке состояния, просто отобразите последние два каталога.

/src/client/client.c

Большое спасибо за любые предложения,

36
задан ant2009 25 May 2010 в 09:30
поделиться

4 ответа

Вы просите изменить имя буфера. Вы можете настроить именование буферов с помощью 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)
41
ответ дан 27 November 2019 в 05:32
поделиться

Этот вариант подходит мне для установки полного пути в кадре:

(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))))
8
ответ дан 27 November 2019 в 05:32
поделиться

См. документацию по переменной 'формат кадра-заголовка' Он укажут вам на переменную 'режим-строка-формат' в котором подробно описываются параметры настройки заголовка

4
ответ дан 27 November 2019 в 05:32
поделиться

Uniquify должен практически сделать то, что вы хотите.

5
ответ дан 27 November 2019 в 05:32
поделиться
Другие вопросы по тегам:

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