Yanıtlar:
Motion'daki Org Manual düğümü , davranışı istenen efekti elde etmek için kolayca özelleştirilebilen yerleşik komutun org-goto
(varsayılan bağlama :) biraz özlü bir tanımını verir C-c C-j
:
C-h v org-goto-interface RET
org-goto
Tamponun ana hattından aşamalı olarak aramanın varsayılan davranışından vazgeçmekten mutluluk duyarsanız, tamamlama yoluyla bir başlık seçmeye geçebilirsiniz:
(setq org-goto-interface 'outline-path-completion)
ido
/ ivy
/ Gibi tamamlama paketlerinin kullanıcıları, helm
hedef yolun tamamını aynı anda görmek için muhtemelen aşağıdaki ayarı değiştirmek isteyecektir:
(setq org-outline-path-complete-in-steps nil)
Daha fazla tartışma için buraya bakın .
Bu yaklaşım, kişisel olarak onaylayabildiğim gibi helm
, varsayılana takılan tüm tamamlama çerçeveleriyle çalışmanın ek faydasına (örneğin, -özel işlevsellik kullanma) sahiptir .completing-read
ivy
EK:
Komutun outline-path-completion
arayüzünü org-goto
bu cevapta açıklandığı gibi kullanırken, özelleştirilebilir değişken org-goto-max-level
, sunulacak maksimum başlık derinliğini belirler.
DÜZENLE:
Yararlı cevapları olan daha eski ve alakalı bir soru buldum: /programming//q/15011703/3084001
AÇIKLAMALAR (Att Righ'in yorumunda istendiği gibi):
org-goto-interface
Tanınan iki değerden birine ayarlanması , alternatif arabirimin feda edilmesi anlamına gelmez. org-goto
Bir önek bağımsız değişkeniyle (yani C-u C-c C-j
veya C-u M-x org-goto RET
) çağrı yapmak, otomatik olarak geçerli tamamlama için alternatif arabirimi seçer. Bu şekilde, org-goto-interface
en sık kullanacağınız arabirime ayarlayabilir ve davranışı geçici olarak değiştirmek istediğinizde önek bağımsız değişkenini kullanabilirsiniz. Bu bile ihtiyaçlarınızı karşılamıyorsa, org-goto
Att Righ örneğine göre her zaman kendi paketleyicinizi yazabilirsiniz .
outline-path-completion
ile güzel oynamıyor helm
(- basılarak elde değil tam geçmiş bir seviye olabilir benim kutuyu <TAB>
eğer helm
: bakınız devre dışı helm-completing-read-handlers-alist
)
let
her türlü geçici ciltleme için kullanılabilir; bu soru ilgili ayarlar / işlevsellik / paketler hakkında daha fazladır. Geçici bir arayüz geçişi elde etmenin daha genel bir yolu org-goto
, bir önek argümanıyla çağırmaktır . Bu cevaba bir not ekleyeceğim.
ivy
, ancak sadece yeniden doldururken ve yanlış bir derinlik ayarıyla org-refile-targets
, yeniden org-goto
doldurmayla ilgili ayarları geçici olarak ihtiyaçlarına göre uyarladığı için. Maalesef helm
şu anda işlevselliği keşfedecek bir konumda değilim , belki başka bir kullanıcı girebilir?
worf
ya da iyi çalışmıyor counsel-imenu
.
Paket worf kullanıyorum , ancak işlevlerinden yalnızca birini bağladım :
(use-package worf
:diminish worf-mode
:bind (:map org-mode-map ("C-c h" . worf-goto)))
worf-goto
size, daha sonra filtreleyebileceğiniz mini arabelleğin ara belleğindeki başlıkların bir listesini verir.
Paket sarmaşık yazar tarafından yapılır , bu yüzden sarmaşık gibi, solucan gibi olabilir.
Worf.el'den bazı alakalı snippet'ler :
;; - "g" (`worf-goto'): select an outline in the current buffer, with
;; completion. It's very good when you want to search/navigate to
;; a heading by word or level. See https://github.com/abo-abo/lispy
;; for a package that uses this method to navigate Lisp code.
(defun worf-goto-action (x)
(with-ivy-window
(goto-char (cdr x))
(outline-show-children 1000)
(worf-more)))
(defun worf-goto ()
"Jump to a heading with completion."
(interactive)
(let ((cands (worf--goto-candidates)))
(cond ((eq worf-completion-method 'helm)
(require 'helm-multi-match)
(let (helm-update-blacklist-regexps
helm-candidate-number-limit)
(helm :sources
`((name . "Headings")
(candidates . ,cands)
(action . worf-goto-action)
(pattern-transformer . worf--pattern-transformer)))))
((eq worf-completion-method 'ivy)
(ivy-read "Heading: " cands
:action 'worf-goto-action)))))
counsel-imenu
tamamlama işlemi solucandan daha iyi çalışır ancak 1. düzey kuruluş başlıklarında arama yapamaz. worfs tüm seviyeleri arar, bu yüzden ben aradığım bu düşünüyorum.
org-imenu-depth
Varsayılan 2'den daha büyük bir şeye ayarlamayı denediniz mi?
Dümen-org-tüfek özellikle güzel buluyorum. Ayrıca imenu kaynağını alan her şey üstbilgileri görüntüleyebilir (ör. İmenu ile Helm).
helm-org-rifle
aradığı belirtilmelidir . Bu davranışı değiştirmenin bir yolunu bulamadım. tüm başlıkları araştıran ancak bulanık aramayı gerçekten desteklemeyen referanslar . helm-org-rifle
org-search-goto
helm-org-rifle
sadece başlık aramıyor. Bunu yapmak için genişletilebilir, ancak helm-org-in-buffer-headings
Helm'in kendisinde vb. Mevcut olduğundan bunu yapmak için çok az neden vardır .
Hoş olmayan kendi kendini tanıma , ancak orgnav'ı denemek isteyebilirsiniz . Bu benim alfa (ama aktif olarak kullandığım) projem bu amaç için.
orgnav içerik yerine başlıkları arar, arama derinliğini, tüm dosya yerine arama alt ağaçlarını değiştirebilir (ancak bu daralma ile de sağlanabilir).
İşte bazı özelliklerin bir videosu: https://asciinema.org/a/1r0fp33xgwh48lfgsh7mllw4u
Muhtemelen bir helm-org
kısmı helm
bu paket için ilham kaynağı olan (ya da daha ziyade sınırlamaları bu paket için ilham kaynağı olan) helm-org-rifle
ve diğer yazılarda tartışılan paketin farkında olmalısınız .
(Yanıtların izniyle: https://www.reddit.com/r/emacs/comments/69mc6l/how_to_jump_directly_to_an_orgheadline/
) Ayrıca ilgi çekici worf-goto
olan worf
( "*" başlıklardan önce). Bu çok benzer görünüyor helm-org
.
Swiper kütüphanesi org-gündem-dosyalarında dosyaların başlıklar için tamamlanmasını olan 0.9.0 yeni bir özellik vardır.
avukat-org-gündem-başlıkları
Ajanda dosyaları listenizi org init içinde ayarlamanız yeterlidir.
(setq org-agenda-files (list "~/org/work.org"
"~/org/school.org"
"~/org/home.org"))
@ Tirocinium'un cevabı ile ilgili olarak, bu aynı fakat birçok gündem dosyası için sağlar.
Ben tavsiye ederim helm-org-in-buffer-headings
. Helm'de yerleşiktir ve daraltılmış arabelleklere saygı duyar, bu da alt ağaçları bağımsız olarak düzenlemek için dolaylı arabellekler kullanırsanız önemlidir. Orada da helm-org-parent-headings
bir ağaca gezinmek için ve helm-org-agenda-files-headings
tüm gündemi dosyalar arasında gezinmek için.
(defun my-org-goto () (let ((org-goto-interface 'outline-path-completion)) (org-goto)))