কিভাবে একটি org- শিরোনাম সরাসরি লাফিয়ে?


17

আমি যদি একটি org ফাইলে থাকি তবে আমি একটি কমান্ড চাই যা আইভি / হেলম স্টাইলে একটি প্রার্থী তালিকা সংকীর্ণ করে, ফাইলের সমস্ত org শিরোনাম নিয়ে গঠিত এবং আমাকে अस्पष्ट অনুসন্ধানের মাধ্যমে শিরোনামটি চয়ন করতে দেয়, যেখানে আমি লাফিয়ে যেতে চাই প্রতি. এটা করার কোন উপায় আছে?

উত্তর:


13

মোশন অন ​​অর্গ ম্যানুয়াল নোড বিল্ট-ইন কমান্ড org-goto(ডিফল্ট বাঁধাই C-c C-j:) এর কিছুটা অলৌকিক বর্ণনা দেয় , যার আচরণটি পছন্দসই প্রভাব অর্জনের জন্য সহজেই কাস্টমাইজ করা যায়:

  1. এই ম্যানুয়াল নোডের শেষে তালিকাবদ্ধ কাস্টমাইজেবল ভেরিয়েবলের ডকুমেন্টেশন পরীক্ষা করুন: C-h v org-goto-interface RET
  2. আপনি যদি org-gotoবাফারের বাহ্যরেখার মাধ্যমে ক্রমবর্ধমান অনুসন্ধানের ডিফল্ট আচরণটি বাদ দিয়ে খুশি হন তবে আপনি সম্পূর্ণ হওয়ার মাধ্যমে একটি শিরোনামটি বেছে নিতে চলে যেতে পারেন:

    (setq org-goto-interface 'outline-path-completion)
  3. সমাপ্তি প্যাকেজের ব্যবহারকারীরা ido/ ivy/ এর মতো helmসম্ভবত পুরো টার্গেট পাথ একবারে দেখার জন্য নীচের সেটিংসটি সম্ভবত পরিবর্তন করতে চান:

    (setq org-outline-path-complete-in-steps nil)

    আরও আলোচনার জন্য এখানে দেখুন ।

এই পদ্ধতির helmডিফল্টটিতে প্লাগ ইন করা সমস্ত সমাপ্তি ফ্রেমওয়ার্কগুলির সাথে কাজ করার অতিরিক্ত সুবিধা (অতিরিক্ত ব্যবহার, বলুন, স্পেসিফিক কার্যকারিতা) completing-readরয়েছে যা আমি ব্যক্তিগতভাবে নিশ্চিত করতে পারি, এইভাবে ivy

সংযোজন:

এই উত্তরে বর্ণিত কমান্ডটিতে outline-path-completionইন্টারফেসটি ব্যবহার করার সময় org-goto, কাস্টমাইজেবল ভেরিয়েবল org-goto-max-levelপ্রস্তাব দেওয়ার জন্য শিরোনামের সর্বাধিক গভীরতা নির্ধারণ করে।

সম্পাদনা করুন:

আমি দরকারী উত্তরগুলির সাথে একটি পুরানো, প্রাসঙ্গিক প্রশ্ন পেয়েছি: /programming//q/15011703/3084001

স্পষ্টকরণ (এট রিয়ের মন্তব্যে অনুরোধ করা):

org-goto-interfaceদুটি স্বীকৃত মানের মধ্যে একটি নির্ধারণের অর্থ বিকল্প ইন্টারফেসটিকে ত্যাগ করার অর্থ নয়। org-gotoএকটি উপসর্গ আর্গুমেন্ট (যেমন C-u C-c C-jবা C-u M-x org-goto RET) দিয়ে কল করা স্বয়ংক্রিয়ভাবে বর্তমান সমাপ্তির জন্য বিকল্প ইন্টারফেস নির্বাচন করে। আপনি org-goto-interfaceযখন অস্থায়ীভাবে আচরণটি স্যুইচ করতে চান তখন আপনি এমন ইন্টারফেসটিতে সেট করতে পারেন যা আপনি প্রায়শই ব্যবহার করতে পারেন এবং উপসর্গ যুক্তিটি ব্যবহার করতে পারেন। এমনকি যদি এটি আপনার প্রয়োজন অনুসারে নাও চলে যায় তবে org-gotoঅ্যাট রিজের উদাহরণ অনুসারে আপনি সর্বদা আপনার নিজের মোড়কের চারপাশে লিখতে পারেন ।


> ডিফল্ট org-goo আচরণটি এড়িয়ে যান, আপনি কার্যকরী কলটির চারপাশে একটি লেট বাইন্ডিং ব্যবহার করে এটি প্রায় কাজ করতে পারেন(defun my-org-goto () (let ((org-goto-interface 'outline-path-completion)) (org-goto)))
এট রিগ

outline-path-completionhelmআমার বাক্সে ভাল খেলবে না (এটি এক স্তর শেষ করতে পারে না - অক্ষম <TAB>থাকলে টিপে অর্জন করে helm : দেখুন helm-completing-read-handlers-alist)
এট রিগ

@ অ্যাটরিঘ শিওর, - letএক্সপ্রেশনগুলি যে কোনও ধরণের অস্থায়ী বন্ধনের জন্য ব্যবহার করা যেতে পারে; এই প্রশ্নটি প্রাসঙ্গিক সেটিংস / কার্যকারিতা / প্যাকেজ সম্পর্কে আরও। ইন্টারফেসের অস্থায়ী সুইচ অর্জনের আরও সাধারণ উপায় হ'ল org-gotoএকটি উপসর্গ যুক্তি দিয়ে কল করা । আমি এই উত্তরে একটি নোট যুক্ত করব।
বেসিল

@AttRigh আমি সঙ্গে অনুরূপ কিছু দেখছি মনে ivy, কিন্তু শুধুমাত্র যখন refiling এবং একটি ভুল গভীরতা সেটিংস থেকে org-refile-targets, যেমন org-gotoসাময়িকভাবে তার প্রয়োজন অনুসারে refile-প্রাসঙ্গিক সেটিংস আত্তীকরণ করে। দুর্ভাগ্যক্রমে আমি helmএই মুহুর্তে কার্যকারিতা অন্বেষণ করার মতো অবস্থানে নেই , সম্ভবত অন্য কোনও ব্যবহারকারী চিম ইন করতে পারেন?
বেসিল

1
বিসিল উত্তর উত্তরের জন্য @ বাসিল ধন্যবাদ। দুর্ভাগ্যক্রমে, এই পদ্ধতির সমাপ্তি পাশাপাশি worfবা তেমন কাজ করে না counsel-imenu
নিনরোড

8

আমি প্যাকেজ ওয়ার্ফ ব্যবহার করি , তবে আমি এর কেবল একটি কার্য সম্পাদন করে:

 (use-package worf
    :diminish worf-mode
    :bind (:map org-mode-map ("C-c h" . worf-goto)))

worf-goto আপনাকে মিনি বাফারে বাফারে শিরোনামগুলির একটি তালিকা দেয় যা আপনি তারপরে ফিল্টার করতে পারেন।

প্যাকেজটি আইভির লেখক তৈরি করেছেন , তাই আপনি আইভি পছন্দ করেন, আপনি পছন্দ করতে পারেন।

ওয়ার্ফ.এল থেকে কিছু প্রাসঙ্গিক স্নিপেট :

;;  - "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)))))

1
ধন্যবাদ @tirocinium। counsel-imenuসমাপ্তি ওয়ার্ফের চেয়ে আরও ভাল কাজ করে তবে স্তর 1 org শিরোনামগুলির মাধ্যমে অনুসন্ধান করতে পারে না। ওয়ার্ফস সমস্ত স্তরের সন্ধান করে, তাই আমি যা খুঁজছি তা এটিই আমার মনে হয়।
নিনরোড

@ নিনরোড আপনি কি org-imenu-depthডিফল্ট 2 এর চেয়ে বড় কিছু স্থাপনের চেষ্টা করেছেন ?
স্যাম

5

আমি হেলম-ওআরজি-রাইফেলটি খুব সুন্দর দেখতে পাই। এছাড়াও আইমেনু উত্সটি গ্রহণ করে এমন কোনও কিছু শিরোনাম প্রদর্শন করতে সক্ষম হবে (উদাঃ হেনম সহ আইমনু)।


এটি লক্ষ করা উচিত যে org এন্ট্রিগুলির বিষয়বস্তু তাদের শিরোনাম ছাড়াও helm-org-rifleঅনুসন্ধান করে । আমি এই আচরণটি পরিবর্তনের কোনও উপায় খুঁজে পাইনি। উল্লেখগুলি যা সমস্ত শিরোনাম অনুসন্ধান করে কিন্তু সত্যই অস্পষ্ট অনুসন্ধানকে সমর্থন করে না। helm-org-rifleorg-search-goto
এট রিগ

অ্যাট রিগ ঠিক আছে, helm-org-rifleকেবল শিরোনাম অনুসন্ধান করে না। এটি করার জন্য এটি প্রসারিত করা যেতে পারে তবে helm-org-in-buffer-headingsহেলমে নিজে থেকেই এগুলি করার খুব কম কারণ রয়েছে।
blujay

4

imenuইমাসে অন্তর্নির্মিত এবং প্রয়োজনীয় ফাজী অনুসন্ধান সরবরাহ করতে হেল্ম / আইভির সাথে জুড়ি দেওয়া যায়। helm-org-rifleআপনি যদি হেলম ব্যবহার করেন তবে আমি সুপারিশ করব ।


4

প্রতীকী স্ব-প্রচার, কিন্তু আপনি orgnav চেষ্টা করে দেখতে পারেন । যা এই কাজের জন্য আমার ধরণের আলফা (তবে সক্রিয়ভাবে আমার দ্বারা ব্যবহৃত) প্রকল্প।

orgnav বিষয়বস্তুর পরিবর্তে অনুসন্ধান শিরোনামগুলি, পুরো ফাইলের চেয়ে অনুসন্ধানের সাবট্রির পরিবর্তে অনুসন্ধানের গভীরতাকে পরিবর্তিত করতে পারে (যদিও এটি সংকীর্ণকরণের মাধ্যমেও অর্জন করা যেতে পারে)।

এখানে কয়েকটি বৈশিষ্ট্যের একটি ভিডিও: https://asciinema.org/a/1r0fp33xgW48lfgsh7mllw4u

আপনার সম্ভবত helm-orgপ্যাকেজ সম্পর্কে সচেতন হওয়া উচিত helmযা এই প্যাকেজের অনুপ্রেরণা (যার পরিবর্তে যার সীমাবদ্ধতা এই প্যাকেজের জন্য অনুপ্রেরণা ছিল), সেইসাথে helm-org-rifleঅন্যান্য পোস্টগুলিতেও আলোচনা করা উচিত।

(উত্তরের সৌজন্যে এখানে: https://www.reddit.com/r/emacs/comments/69mc6l/how_to_jump_directly_to_an_orgheadline/ ) এর সম্ভাব্য আগ্রহের worf-gotoঅংশটি worf(org নেভিগেশন মোড যা বিভিন্ন কী-বাইন্ডিংগুলির বিভিন্ন সেট প্রয়োগ করে) হিসাবে কাজ করে শিরোনামের আগে "*")। এটি দেখতে অনেকটা সাদৃশ্যপূর্ণ helm-org


4

Swiper গ্রন্থাগার 0.9.0 একটি নতুন বৈশিষ্ট্য, যা আপনার সংস্থা-বিষয়সূচি-ফাইলের মধ্যে ফাইলের শিরোনাম জন্য সমাপ্তির আছে।

পরামর্শ-সংস্থা-বিষয়সূচি-শিরোনাম

Org init এ আপনার এজেন্ডা ফাইলগুলির তালিকা সেটআপ করা দরকার।

(setq org-agenda-files (list "~/org/work.org"
                             "~/org/school.org" 
                             "~/org/home.org"))

@ টিরোসিনিয়ামের উত্তরের সাথে সম্পর্কিত, এটি একই তবে অনেকগুলি এজেন্ডা ফাইলের জন্য সরবরাহ করে।


3

আমি ব্যবহার করি counsel-imenu; এটি বিভিন্ন মাথা তালিকাভুক্ত করবে, আপনি আপনার নির্বাচনকে সংকীর্ণ করতে কিছু অক্ষর টাইপ করতে পারেন এবং তারপরে কেবল টিপুন <return>


হাই @gnuvince এটি আমাকে ঠিক 1 অর্গ ফাইলের উপরের দিকে যেতে অনুমতি দেয় না?
নিনরোড

2

আমি সুপারিশ helm-org-in-buffer-headings। এটি হেলমের অন্তর্নির্মিত, এবং এটি সংকীর্ণ বাফারগুলিকে সম্মান করে, যা আপনি সাবট্রিকে স্বাধীনভাবে সম্পাদনা করতে অপ্রত্যক্ষ বাফার ব্যবহার করেন তবে তা গুরুত্বপূর্ণ। এছাড়াও আছে helm-org-parent-headingsএকটি গাছ আপ নেভিগেট জন্য, এবং helm-org-agenda-files-headingsসব এজেন্ডা ফাইল জুড়ে নেভিগেট জন্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.