ऑर्ग-मोड चेकलिस्ट में लाइनों को कैसे कन्वर्ट करें?


12

मान लीजिए मेरे पास निम्नलिखित सूची है। मैं इसे एक चेकलिस्ट में बदलना चाहता हूं।

Lec 1 |         1:20:36
Lec 2 |         1:10:32
Lec 3 |         1:08:33
Lec 4 |         1:20:33
Lec 5 |         1:16:50
Lec 6 |         1:08:49
Lec 7 |         1:17:40
Lec 8 |         1:19:47
Lec 9 |         1:21:22
Lec 10 |        1:23:52
Lec 11 |        1:23:45
Lec 12 |        1:25:32
Lec 13 |        1:19:06
Lec 14 |        1:14:28
Lec 15 |        1:11:01
Lec 16 |        1:24:07
Lec 17 |        1:24:34
Lec 18 |        1:17:17
Lec 19 |        1:14:59
Lec 22 |        1:15:08
Lec 23 |        1:16:48
Lec 24 |        1:24:47
Lec 25 |        1:25:21

यह कैसे करना है?

(मैंने इसे केबीडी-मैक्रो का उपयोग करने में किया था। मुझे आश्चर्य है कि orgक्या ऐसा करने की कोई आज्ञा है?)


कई तरीके हैं और जल्दी व्यक्तिपरक है। मैं उपयोग करूँगा multiple cursorsया query-search-replace। चेक लिस्ट में कनवर्ट करके, आप बस लाइनों को [ ]सही करने के लिए तैयार करने का मतलब है ?
कौशल मोदी

हाँ। क्या आप संक्षेप में बता सकते हैं कि कैसे उपयोग करना है multiple cursorsया query-search-replace?
निक

यहां खोज-प्रतिस्थापन करने के लिए उपयोग करने के तरीके का विस्तृत विवरण दिया गया है multiple-cursors। यह बात इस मामले पर भी लागू होगी।
कौशल मोदी

त्वरित वेब खोजों की कड़ियां को लाने multiple-cursorsऔर पर मैनुअल पृष्ठ क्वेरी को बदलें । इस सामान का एक बहुत अच्छी तरह से प्रलेखित है, और बस एक वेब खोज है।
दान

धन्यवाद। यह उन्नत और थोड़ा जटिल लगता है। मुझे उन कमांड / टूल्स से परिचित होना चाहिए।
निक

जवाबों:


23

सबसे आसान तरीका जो मैं सोच सकता था:

  1. सूची का चयन करें।
  2. बिंदु को पहले कॉलम में ले जाएं।
  3. C-x r t- [ ]RET

आप कर चुके हैं।


1
वाह! आयत संपादन इतना सीधा आगे शक्तिशाली है! धन्यवाद!
निक

ऐसा कमाल। चेकलिस्ट के रूपांतरण के लिए बहुत उपयोगी है।
OrgAddict

11

सबसे पहले, स्पष्टता के लिए कुछ शब्दार्थ। में org-mode, एक सादे सूची या तो आदेश दिया है या अव्यवस्थित, शुरू करने के साथ या तो एक -, +या *(अव्यवस्थित के लिए), या एक नंबर का पालन किया या तो एक से .या एक )(के लिए आदेश दिया)। तो: आपके उदाहरण में आपके द्वारा वर्णित "सूची" अभी तक एक org-modeसूची नहीं है , क्योंकि यह इन गोलियों में से किसी के साथ शुरू नहीं होती है।

दूसरा, मैं "चेकलिस्ट" द्वारा मानता हूं, जिसका मतलब है कि चेकबॉक्स जो कि org-modeउसकी सादे सूचियों में उपयोग करता है, जैसे:

- [X] A checked list item
- [ ] An unchecked list item

यहां एक बहुत ही सरल कार्य है जो चयनित क्षेत्र में सभी लाइनों को चेकबॉक्स के साथ एक अव्यवस्थित सूची में बदल देगा (बड़े पैमाने पर परीक्षण नहीं किया गया है, लेकिन आपके उदाहरण पर काम करता है):

(defun org-convert-lines-to-checklist (beg end)
  "Convert all plain lines in region to a plain list with
checkboxes."
  (interactive "r")
  (save-excursion
    (goto-char beg)
    (dotimes (_ (- (line-number-at-pos end) (line-number-at-pos beg)))
      (insert "- [ ] ")
      (indent-according-to-mode)
      (forward-line 1))))

7

नीचे टेक्स्ट को चेकलिस्ट में बदलने का एक और मजेदार तरीका है org-mode

टेक्स्ट को चेकबॉक्स की सूची में बदलने के लिए ऑर्ग-मोड कोड ब्लॉक का उपयोग करें

नोट: C-c C-cकर्सर कोड कोड के भीतर होने पर परिणाम उपयोग उत्पन्न करने के लिए ।
फिर yesसंकेत दिए जाने पर उत्तर दें ।

  1. एक नामित डायनामिक ब्लॉक के अंदर अपनी सूची लपेटें

    #+NAME: my-list-block  
    #+BEGIN:  
    Lec 1 |         1:20:36'  
    Lec 2 |         1:10:32  
    Lec 3 |         1:08:33  
    Lec 4 |         1:20:33  
         ... More ...  
    Lec 24 |        1:24:47  
    Lec 25 |        1:25:21  
    #+END:  
    
  2. org-modeअपनी पसंदीदा प्रोग्रामिंग भाषा में एक कोड ब्लॉक लिखें ।

    उदाहरण 1 - elispकोड ब्लॉक का उपयोग करना

    #+name: list-into-checklist-elisp
    #+header: :results list raw replace output 
    #+header: :var data=my-list-block()
    #+begin_src elisp
      (dolist (x (split-string data "\n"))
            (princ (format "[ ] %s\n" x)))
    #+end_src
    
    #+RESULTS: list-into-checklist-elisp
    - [ ] Lec 1 |         1:20:36
    - [ ] Lec 2 |         1:10:32
    - [ ] Lec 3 |         1:08:33
    - [ ] Lec 4 |         1:20:33
    - [ ]       ... More ...
    - [ ] Lec 24 |        1:24:47
    - [ ] Lec 25 |        1:25:21
    

    उदाहरण 2 - perlकोड ब्लॉक का उपयोग करना

    #+name: list-into-checklist-perl
    #+header: :results list raw replace output
    #+header: :var data=my-list-block()
    #+begin_src perl
      map { printf qq([ ] %s\n), $_ } split(/\n/, $data); 
    #+end_src
    
    #+RESULTS: list-into-checklist-perl
    - [ ] Lec 1 |         1:20:36
    - [ ] Lec 2 |         1:10:32
    - [ ] Lec 3 |         1:08:33
    - [ ] Lec 4 |         1:20:33
    - [ ]       ... More ...
    - [ ] Lec 24 |        1:24:47
    - [ ] Lec 25 |        1:25:21
    

    उदाहरण 3 - bashकोड ब्लॉक का उपयोग करना

    #+name: list-into-checklist-bash
    #+header: :results list raw replace output
    #+header: :shebang #!/usr/bin/env bash
    #+header: :var data=my-list-block()
    #+begin_src sh
      while IFS="\n" read -ra ADDR; do
            for i in "${ADDR[@]}"; do
                echo "[X] $i"
            done
       done <<< "$data"
    #+end_src
    
    #+RESULTS: list-into-checklist-bash
    - [X] Lec 1 |         1:20:36
    - [X] Lec 2 |         1:10:32
    - [X] Lec 3 |         1:08:33
    - [X] Lec 4 |         1:20:33
    - [X]       ... More ...
    - [X] Lec 24 |        1:24:47
    - [X] Lec 25 |        1:25:21
    

    उदाहरण 4 - pythonकोड ब्लॉक का उपयोग करना

    #+name: list-into-checklist-python
    #+header: :results list raw replace output
    #+header: :var data=my-list-block()
    #+Begin_src python
      l = ["[ ] {x}".format(x=row) for row in data.splitlines()]
      for i in l: print i
    #+end_src 
    
    #+RESULTS: list-into-checklist-python
    - [ ] Lec 1 |         1:20:36
    - [ ] Lec 2 |         1:10:32
    - [ ] Lec 3 |         1:08:33
    - [ ] Lec 4 |         1:20:33
    - [ ]       ... More ...
    - [ ] Lec 24 |        1:24:47
    - [ ] Lec 25 |        1:25:21
    

    उदाहरण 5 - rubyकोड ब्लॉक का उपयोग करना

    #+name: list-into-checklist-ruby
    #+header: :results list raw replace output
    #+header: :var data=my-list-block()
    #+Begin_src ruby
      for l in  data.split("\n")
        puts "[ ] #{l}"
      end
    #+end_src 
    
    #+RESULTS: list-into-checklist-ruby
    - [ ] Lec 1 |         1:20:36
    - [ ] Lec 2 |         1:10:32
    - [ ] Lec 3 |         1:08:33
    - [ ] Lec 4 |         1:20:33
    - [ ]       ... More ...
    - [ ] Lec 24 |        1:24:47
    - [ ] Lec 25 |        1:25:21
    

आपका सवाल पूछने के लिए धन्यवाद!

उम्मीद है कि मदद की!

नोट: इस कोड को एमएसीएस और ऑर्ग-मोड के निम्नलिखित संस्करणों का उपयोग करके परीक्षण किया गया था।

GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0, NS apple-appkit-1343.14)
Org-mode version 8.2.10 (8.2.10-29-g89a0ac-elpa)

6

खोज और प्रतिस्थापन का उपयोग करना:

M-%Lec Enter - [] Lec Enter

ध्यान दें कि चेकबॉक्स के चारों ओर रिक्त स्थान हैं, हालांकि वे यहां अच्छा नहीं दिखाते हैं।


यह भी बहुत अच्छा काम करता है। क्षमा करें, मैं केवल एक को उत्तर के रूप में चिह्नित कर सकता हूं, इसलिए मैं केवल वोट कर सकता हूं। आपका बहुत बहुत धन्यवाद।
निक

3

में बुराई मोड या Spacemacs आप यह सोचते हैं आप डिफ़ॉल्ट कुंजी-बाइंडिंग नहीं बदला है यह कर सकते हैं,:

  1. सामान्य स्थिति में (विम के सामान्य मोड के बराबर), कर्सर को अपनी सूची में पहली पंक्ति की शुरुआत में ले जाएं ।

  2. Ctrl+ दबाएं v

  3. अपनी सूची में jप्रत्येक शेष पंक्ति के लिए एक बार दबाएँ । (वैकल्पिक रूप से, आपकी सूची में शेष पंक्तियों की संख्या टाइप करें, इसके बाद jकुंजी। उदाहरण के लिए जैसे:) 24j

  4. Shift+ दबाएं i

  5. टाइप करें - [ ]

  6. प्रेस करें Esc

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.