Как да намеря файлове в организационен режим със завършване в Emacs?

Имам нарастващ набор от организационни файлове, съхранявани в org-directory. Как мога да навигирам между тях, за предпочитане с интерактивно филтриране и завършване?

Мислех, че има начин да накарам org-mode да създаде списък с известни организационни файлове за бърза навигация, но изглежда не мога да го намеря. Ако org-mode няма тази функция, как мога да направя проста команда, която стартира нещо като helm или icicles, за да ги намери?


person shader    schedule 15.07.2015    source източник
comment
EmacsWiki има някои примери за използване на ido -- например Помощна функция за избор въз основа на режим: emacswiki .org/emacs/InteractivelyDoThings Има също вече вградени менюта със списъци с буфери -- напр. ime, list-buffers, скоростна лента (изглед на буфери) и т.н. -- сортирането е възможно по основен режим; и също така е възможно да се настроят филтри за показване само на буферите, които представляват интерес.   -  person lawlist    schedule 16.07.2015


Отговори (4)


Въпросът не ми е много ясен. Но ако всичките ви файлове в организационен режим имат определен модел на имена на файлове (напр. *.org) и всички са в една и съща директория (org-directory), тогава можете да използвате няколко метода Emacs метод за достъп до тях:

  1. C-x C-f *.org RETURN в org-directory ги отваря всички (буферите ги посещават, но се показва само последният).

  2. C-x C-f *.org TAB в org-directory, за да ги покажете чрез завършване, след това изберете който желаете (или изберете повече от един, като използвате глобален модел, както в #1).

  3. Същото като #2, използвайки Icicles или Helm. Поне в Icicles можете също да съвпадате с помощта на регулярни изрази и по други начини.

  4. Отворете Dired само за тези файлове: C-x d *.org.

Наистина има безброй начини да направите това, което сте описали. Но предполагам, че не сте описали достатъчно добре своята заявка/проблем/въпрос и когато го направите, ще получите по-тесен набор от отговори.


АКТУАЛИЗАЦИЯ след вашите коментари:

Ето един начин: Отворете Dired на всички ваши организационни файлове във и под org-directory.

(defun foo ()
  "Open Dired for (only) the Org files in and under `org-directory`."
  (interactive)
  (cd org-directory)
  (dired "*.org" "-lRF"))

Тествайте го с M-x foo. Поставете това във вашия начален файл:

(foo)

И ето друг начин: M-x bar или обвържете bar с ключ.

(defun bar ()
  "Open an Org file in or under `org-directory`."
  (interactive)
  (let ((default-directory         org-directory)
        (icicle-file-match-regexp  ".*\\.org"))
    (icicle-locate-file-of-content)))
person Drew    schedule 16.07.2015
comment
Да, всичките ми организационни файлове съвпадат с *.org и са някъде под org-directory (може би поддиректория). Търся една-единствена команда, която може да настрои търсенето подобно на това, което предлагате, но без да се налага да навигирате до директорията и да въвеждате регулярния израз всеки път. - person shader; 16.07.2015
comment
Това е полезно за отваряне на списък с организационни файлове, но не и за бързо преминаване към един от тях. Как бихте направили същото нещо за инициализиране на една от опциите за намиране на файл, които споменахте в #2 и #3? - person shader; 16.07.2015

Имам пакет, който прави точно това: plain-org-wiki. Не е нищо прекалено сложно: просто изхвърлям всичките си 45 org файла в една директория и получавам завършване за тях.

person abo-abo    schedule 16.07.2015
comment
Това изглежда доста близо до това, което питах. Имате ли някаква документация или съвети как да го настроите и използвате? Readme файл във вашето репо би бил полезен. - person shader; 16.07.2015

Какво ще кажете за org-iswitchb, който вече се предоставя от org?

Sпревключване между организационните буфери. С един префиксен аргумент ограничава наличните буфери до файлове. С два префиксни аргумента ограничете наличните буфери до файлове с дневен ред.

Добавете това към вашия стартиращ файл, след като организацията бъде заредена: (global-set-key "\C-cb" 'org-iswitchb)

person Jeffrey DeLeo    schedule 22.07.2015

Любимото ми решение за това е helm-mode, което се активира с пакета helm от MELPA. Ето демо:

Завършване на режим на управление

Това наистина създава страхотна среда за бързо търсене на файлове. В допълнение, можете да активирате размито завършване! Ето минимална конфигурация (след инсталиране на пакета helm):

(require 'helm-config)
(helm-mode 1)
(global-set-key (kbd "C-x C-f") 'helm-find-files)

Можете също така да стартирате grep на файловете, ако искате да търсите в тяхното съдържание. Разгледайте това невероятно ръководство, ако искате да научите повече.

person GJStein    schedule 16.07.2015
comment
Съгласен съм, че helm е страхотен за интерактивно стесняване на файлове, но се надявах да науча как да настроя търсене само на org файлове. Изглежда възможно да се направи с helm, но не знам как. - person shader; 16.07.2015