একটি org- মোড চেকলিস্টে লাইনগুলি কীভাবে রূপান্তর করবেন?


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

এটা কিভাবে করতে হবে?

(আমি কেবিডি-ম্যাক্রো ব্যবহার করে এটি করেছি I আমি আশ্চর্য হয়েছি এটি করার কোনও 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
কি দারুন! আয়তক্ষেত্র সম্পাদনা এত সোজা এগিয়ে তবুও শক্তিশালী! ধন্যবাদ!
নিক

যেমন দুর্দান্ত। চেকলিস্টে রূপান্তর করার জন্য খুব দরকারী।
অরগএডিক্ট

11

স্বচ্ছতার জন্য প্রথমে কিছু শব্দার্থক। ইন org-mode, একটি প্লেইন তালিকা পারেন নির্দেশ দেওয়া হয় বা unordered, শুরু সঙ্গে হয় একটি -, +অথবা *(unordered জন্য), অথবা একটি সংখ্যা অনুসৃত হয় একটি দ্বারা .বা )(জন্য আদেশ)। সুতরাং: আপনি আপনার উদাহরণে যে "তালিকা" বর্ণনা করেছেন তা এখনও একটি 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

পাঠ্যকে চেকবাক্সের তালিকায় রূপান্তর করতে org- মোড কোড ব্লক ব্যবহার করুন

দ্রষ্টব্য: 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
    

আপনার প্রশ্ন জিজ্ঞাসা করার জন্য ধন্যবাদ!

আশা করি যে সাহায্য!

দ্রষ্টব্য: এই কোডটি ইমাকস এবং org-মোডের নিম্নলিখিত সংস্করণগুলি ব্যবহার করে পরীক্ষা করা হয়েছিল।

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-%লেক Enter - [] লেক Enter

নোট করুন যে চেকবাক্সের চারপাশে ফাঁকা জায়গা রয়েছে, যদিও তারা এখানে ভাল দেখায় না।


এটিও খুব ভাল কাজ করে। দুঃখিত আমি কেবল উত্তর হিসাবে চিহ্নিত করতে পারি, তাই আমি কেবল ভোট দিতে পারি। আপনাকে অনেক ধন্যবাদ.
নিক

3

ইন ইভিল মোড অথবা Spacemacs আপনি অভিমানী আপনাকে ডিফল্ট কী-বাইন্ডিং পরিবর্তিত হয়নি এটা করতে পারেন:

  1. সাধারণ অবস্থায় (ভিমের সাধারণ মোডের সমতুল্য), আপনার তালিকার প্রথম লাইনের শুরুতে কার্সারটি সরান ।

  2. চাপুন Ctrl+ v

  3. আপনার তালিকার jপ্রতিটি অবশিষ্ট লাইনের জন্য একবার চাপুন । (বিকল্পভাবে, আপনার তালিকার অবশিষ্ট রেখার সংখ্যা টাইপ করুন, jকীটি অনুসরণ করুন । উদাহরণস্বরূপ উদাহরণস্বরূপ 24j:))

  4. চাপুন Shift+ i

  5. প্রকার - [ ]

  6. টিপুন Esc

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