ইডো-মোডে সম্প্রতি ফাইলগুলি খোলা হয়েছে


12

আমি ব্যবহার করি ido-modeতবে একটি বিষয় যা আমি ঘৃণা করি তা হ'ল C-x C-fআমি up/downসম্প্রতি খোলা ফাইলগুলির মাধ্যমে চক্রের কীগুলি ব্যবহার করতে পারি না , যেমন এটি উদাহরণস্বরূপ ব্যবহৃত হত iswitchb। আমি কীভাবে idoএইভাবে কাজ করতে পারি ?

উত্তর:


16

ido-mode( M-x customize-group RET ido RET) এর জন্য কাস্টমাইজেশন বিকল্পগুলির দিকে তাকিয়ে , আপনি বর্ণিত সাইকেল চালানোর আচরণ সক্ষম করার জন্য আমি কোনও বিকল্প দেখতে পাচ্ছি না।

তবে, আপনি আপনার init-ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করতে পারেন:

(require 'recentf)

(defun ido-recentf-open ()
  "Use `ido-completing-read' to find a recent file."
  (interactive)
  (if (find-file (ido-completing-read "Find recent file: " recentf-list))
      (message "Opening file...")
    (message "Aborting")))

(global-set-key (kbd "C-x C-r") 'ido-recentf-open)

এটির জায়গায় আপনি C-x C-rসম্প্রতি খোলা ফাইলগুলি নির্বাচনের জন্য ইডো সমাপ্তির জন্য টিপতে পারেন ।

ডিফল্টরূপে, 20 টি সর্বশেষতম ফাইল ইতিহাসে রাখা হবে। আমি আপনাকে 150 টির মতো এমন কিছু স্থাপন করার পরামর্শ দিচ্ছি recentf-max-saved-items:

(setq recentf-max-saved-items 150)

বোনাস: সাম্প্রতিক ফাইলগুলি অন-স্টেরয়েড সংস্করণে অ্যাক্সেস করা হচ্ছে

আমি এটা স্থান অনেকটা উল্লেখ দেখতে পাচ্ছি না, কিন্তু ইডো ভার্চুয়াল বাফার করতে সুপার সহজ এক্সেস সাম্প্রতিক ফাইলগুলিতে। তাদের মতো এটি সক্ষম করুন:

(setq ido-use-virtual-buffers t)

আপনি যে আচরণটি পান এটি হ'ল:

যদি তা না nilহয় তবে অতীতের ("ভার্চুয়াল") বাফারগুলির পাশাপাশি বিদ্যমানগুলি দেখুন।

মূলত এটি নিম্নরূপে কাজ করে: বলুন যে আপনি কোনও ফাইল পরিদর্শন করছেন এবং বাফারটি পরিষ্কার হয়ে যায় midnight.el। পরে, আপনি সেই বাফারটিতে যেতে চান, তবে এটি আর খোলা নেই। ভার্চুয়াল বাফার সক্ষম করে, বাফার নামটি বাফার তালিকায় থাকে ( ido-virtualমুখ ব্যবহার করে এবং সর্বদা শেষে) এবং আপনি যদি এটি নির্বাচন করেন তবে এটি ফাইলটি আবার ব্যাক আপ করে। এটি আপনাকে সম্প্রতি খোলা ফাইলগুলি এখনও খোলা আছে কি না সে সম্পর্কে কম চিন্তা করতে দেয়। বেশিরভাগ সময় আপনি ইমাস ছেড়ে দিতে পারেন, পুনরায় চালু করতে পারেন এবং তারপরে এমন একটি ফাইল বাফারে স্যুইচ করতে পারেন যা আগেও খোলা ছিল যেন এখনও তা।


এখনও অবধি আমি উজ্জীবিত হয়েছি, আমি পরে তা গ্রহণ করব যখন আমি এটি পরীক্ষা করব এবং এটি কীভাবে কাজ করে তা বুঝব। (লিস্প সম্পর্কে আমার বোঝাপড়া খুব খারাপ)।
ওয়েসেন্সএএসসুলআইনসন্ধান অফস্বরুপ

@ ওয়েসেন্সএএসএএসওলআইনসন্ধানঅফ উত্তরসমূহ অবশ্যই, আপনার সময় নিন। আমি পোস্ট করা কোড সম্পর্কে আপনার কোনও নির্দিষ্ট প্রশ্ন থাকলে তা আমাকে জানান।
itjeyd

আমি স্বীকার করেছি কিন্তু খোলামেলাভাবে বললে আমার এটি পছন্দ হয় না কারণ C-x C-rএটি দিয়ে নতুন ফাইল খোলা সম্ভব নয়। আমিও অবাক হয়েছি যে এটিকে সহজ উপায়ে কাস্টমাইজ করা সম্ভব নয়। ইতিহাসটি C-x C-fএমন একটি সুস্পষ্ট বৈশিষ্ট্য যা idoএখনও বুঝতে পারি না কেন এখনও কার্যকর করা হয় নি। উদাহরণস্বরূপ M-x up/down, সাম্প্রতিক কমান্ডগুলির M-% up/downমাধ্যমে চক্র , সাম্প্রতিক ক্যোয়ারির মাধ্যমে চক্রগুলি প্রতিস্থাপন এমনকি ইমাসের বাইরেও - বাশ বা zsh হিসাবে সমস্ত শেল পূর্ববর্তী কমান্ডগুলি পুনরুদ্ধার করতে উপরে / ডাউন ব্যবহার করে। আমার জন্য C-x C-f up/downসম্প্রতি খোলা ফাইলগুলির মধ্যে চক্র করা উচিত। দাড়ি.
ওয়েসেন্সএএসএলসৌনসন্ধানঅফস উত্তরগুলি

@ ওয়েসেন্সএএসএলসৌনসন্ধানঅফ উত্তরগুলি আপনার সাথে আমি একমত, এবং কেন বাক্সের বাইরে এটি উপলব্ধ বা কাস্টমাইজযোগ্য নয় তা আমার কোনও ধারণা নেই। ব্যক্তিগতভাবে আমার জন্য, এটি কোনও বড় বিষয় নয় কারণ আমি আমার উত্তরে বর্ণিত ভার্চুয়াল বাফার বৈশিষ্ট্যটি ব্যবহার করি, সুতরাং সাম্প্রতিক ফাইলটিতে স্যুইচ করা অন্য বাফারে স্যুইচ করার সমান; সত্যিই সহজ। তবে আমি বুঝতে পারি যে আপনি ব্যবহার করার জন্য ব্যবহৃত কোনও বৈশিষ্ট্য যদি না পাওয়া যায় তবে তা হতাশার হতে পারে।
itjeyd

5
+1 এর জন্য ido-use-virtual-buffers- একটি দুর্দান্ত বৈশিষ্ট্য যা ডিফল্ট আইএমও দ্বারা সত্যই হওয়া উচিত।
জন ও।

2

যদিও বাইন্ডিংগুলি সময়ের সাথে সাথে বিকশিত হয়েছে, আজকের মতো, যখন আপনি প্রার্থনা করেন ido-find-fileবা ido-find-file-read-only, আপনি ডিফল্ট কনফিগারেশনে নিম্নলিখিত বাইন্ডিংগুলি ব্যবহার করতে পারেন:

  • M-o পূজা ido-prev-work-file
  • C-M-o পূজা ido-next-work-file

এগুলি ইডো চেষ্টা করার আগে আমি যেভাবে M-pএবং M-nবাইন্ডিংগুলি ব্যবহার করেছিলাম তার মতো আধ্যাত্মিকভাবে সুখকর না হওয়া ছাড়াও এগুলি ধীর গতির এবং ফলস্বরূপ মিনিবাসু বকবক বিভ্রান্তিকর এবং বিভ্রান্তিকর। ইডো সদ্য খোলা ফাইলের নাম প্রদর্শন করা ছাড়াও আরও কিছু করে; এটি প্রতিবেদন করে যে এটি "' ফাইলের নাম ' অনুসন্ধান করছে ...", সম্ভবত কোনও ফাইলের জন্য কোনও নাম দেওয়ার অনিচ্ছার কারণে যেটি আর নেই।

"অনুসন্ধানের জন্য" বার্তাটি ফাংশন থেকে আসে ido-make-merged-file-listউত্সটি পড়া , আমি এই ফাংশনটি যা যা ঘটছে তা নিষ্ক্রিয় করার কোনও উপায় দেখছি না।

আপনি rebinding বিবেচনা করতে পারে ido-prev-work-fileএবং ido-next-work-fileমত আরো প্রাকৃতিক কিছু যুগল C-M-pএবং C-M-nঅথবা বর্তমান সোয়াপিং M-p( ido-prev-work-directory) এবং M-n( ido-next-work-directory) এই জন্য বাইন্ডিং।

ডিফল্ট ডিরেক্টরি-কেন্দ্রিক বাইন্ডিংগুলিকে এবং যথাক্রমে স্থানান্তরিত করে সাম্প্রতিক ফাইলগুলি পুনরুদ্ধার করতে M-pএবং M-nচক্রের জন্য এখানে ইমাস লিস্প কোডটি রয়েছে :C-M-pC-M-n

(add-hook 'ido-setup-hook
          (lambda ()
            (let ((kmap ido-file-dir-completion-map))
              (let ((key '(meta ?n)))
                (define-key kmap (vector (cons 'control key))
                  (lookup-key kmap (vector key)))
                (define-key kmap (vector key) 'ido-next-work-file))
              (let ((key '(meta ?p)))
                (define-key kmap (vector (cons 'control key))
                  (lookup-key kmap (vector key)))
                (define-key kmap (vector key) 'ido-prev-work-file)))))

1
Emacs এসই এ স্বাগতম! আপনার উত্তরগুলি মূল পোস্টারের প্রশ্নের উপর নিবদ্ধ করে রাখার চেষ্টা করুন। অবশ্যই "মিনিবাসার বকবক" সম্পর্কে আপনার মন্তব্য আকর্ষণীয় এবং সম্পর্কিত, তবে এটি প্রশ্নের প্রকৃত উত্তর খুঁজে পাওয়া থেকে বিরত রয়েছে। আরও গুরুত্বপূর্ণ: দয়া করে আপনার উত্তরটি ... ভাল, একটি উত্তর আকারে দেওয়ার চেষ্টা করুন। আপনি যা লিখেছেন তা কমেন্টের মতো আরও পড়েন, যা এই জাতীয় প্রশ্নোত্তর সাইটের পক্ষে উপযুক্ত নয়।
পেপ্রিকা

ঠিক আছে, প্রথম অনুচ্ছেদ এবং এর নিম্নলিখিত তালিকাটি মূল প্রশ্নের উত্তর দেয়, যা সম্প্রতি খোলা ফাইলগুলির মাধ্যমে চক্রের কীগুলি সন্ধান করেছিল। এই বাইন্ডিংগুলি ডিফল্টরূপে বিদ্যমান, তবে এখানে অন্য কোনও উত্তরগুলির মধ্যে এই বাইন্ডিংগুলির উল্লেখ করা হয়নি। আমি রিব্যান্ডিং কোডটিতে কাজ করছি এবং একবার সন্তুষ্ট হয়ে গেলে এটি আমার উত্তরটিতে অন্তর্ভুক্ত করব।
সেহ

2

আমি এই ক্ষেত্রে যা সহ্য করেছি তা আইডোমোডে সিএফ টাইপ করে স্বাভাবিক মিনিবাসার আচরণে ফিরে যাচ্ছে। তারপরে আপনার কাছে সাধারণ ইতিহাস ব্রাউজিং কী থাকবে। আপনি যদি এটি আগে থেকে জানেন তবে তা দ্রুত হতে পারে: Cxff :-)


1

@Itsjeyd দ্বারা প্রদত্ত উত্তরটি বেশ সম্পূর্ণ। আমাকে কেবল একটি ফাংশন প্রস্তাব দিন:

(defun ido-choose-from-recentf ()
  "Use ido to select a recently visited file from the `recentf-list'"
  (interactive)
  (find-file (ido-completing-read "Open file: " recentf-list nil t)))

;; bind it to "C-c f"
(global-set-key (kbd "C-c f") 'ido-choose-from-recentf)

সৌজন্যে উইকিম্যাকস


1

helm-for-filesফাইলের নাম স্বতঃ-সমাপ্তির উদ্দেশ্য এবং সুন্দর অনুসন্ধান ইন্টারফেসের উদ্দেশ্যে আমি উপরের উত্তরগুলির চেয়ে আরও ভাল কাজ পেয়েছি । এছাড়াও, আপনি আপনার পছন্দসই কোনও অনুসন্ধান আইটেম অন্তর্ভুক্ত করতে এটি কনফিগার করতে পারেন।


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