আমি ব্যবহার করি ido-modeতবে একটি বিষয় যা আমি ঘৃণা করি তা হ'ল C-x C-fআমি up/downসম্প্রতি খোলা ফাইলগুলির মাধ্যমে চক্রের কীগুলি ব্যবহার করতে পারি না , যেমন এটি উদাহরণস্বরূপ ব্যবহৃত হত iswitchb। আমি কীভাবে idoএইভাবে কাজ করতে পারি ?
আমি ব্যবহার করি ido-modeতবে একটি বিষয় যা আমি ঘৃণা করি তা হ'ল C-x C-fআমি up/downসম্প্রতি খোলা ফাইলগুলির মাধ্যমে চক্রের কীগুলি ব্যবহার করতে পারি না , যেমন এটি উদাহরণস্বরূপ ব্যবহৃত হত iswitchb। আমি কীভাবে idoএইভাবে কাজ করতে পারি ?
উত্তর:
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মুখ ব্যবহার করে এবং সর্বদা শেষে) এবং আপনি যদি এটি নির্বাচন করেন তবে এটি ফাইলটি আবার ব্যাক আপ করে। এটি আপনাকে সম্প্রতি খোলা ফাইলগুলি এখনও খোলা আছে কি না সে সম্পর্কে কম চিন্তা করতে দেয়। বেশিরভাগ সময় আপনি ইমাস ছেড়ে দিতে পারেন, পুনরায় চালু করতে পারেন এবং তারপরে এমন একটি ফাইল বাফারে স্যুইচ করতে পারেন যা আগেও খোলা ছিল যেন এখনও তা।
C-x C-rএটি দিয়ে নতুন ফাইল খোলা সম্ভব নয়। আমিও অবাক হয়েছি যে এটিকে সহজ উপায়ে কাস্টমাইজ করা সম্ভব নয়। ইতিহাসটি C-x C-fএমন একটি সুস্পষ্ট বৈশিষ্ট্য যা idoএখনও বুঝতে পারি না কেন এখনও কার্যকর করা হয় নি। উদাহরণস্বরূপ M-x up/down, সাম্প্রতিক কমান্ডগুলির M-% up/downমাধ্যমে চক্র , সাম্প্রতিক ক্যোয়ারির মাধ্যমে চক্রগুলি প্রতিস্থাপন এমনকি ইমাসের বাইরেও - বাশ বা zsh হিসাবে সমস্ত শেল পূর্ববর্তী কমান্ডগুলি পুনরুদ্ধার করতে উপরে / ডাউন ব্যবহার করে। আমার জন্য C-x C-f up/downসম্প্রতি খোলা ফাইলগুলির মধ্যে চক্র করা উচিত। দাড়ি.
ido-use-virtual-buffers- একটি দুর্দান্ত বৈশিষ্ট্য যা ডিফল্ট আইএমও দ্বারা সত্যই হওয়া উচিত।
যদিও বাইন্ডিংগুলি সময়ের সাথে সাথে বিকশিত হয়েছে, আজকের মতো, যখন আপনি প্রার্থনা করেন ido-find-fileবা ido-find-file-read-only, আপনি ডিফল্ট কনফিগারেশনে নিম্নলিখিত বাইন্ডিংগুলি ব্যবহার করতে পারেন:
ido-prev-work-fileido-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)))))
আমি এই ক্ষেত্রে যা সহ্য করেছি তা আইডোমোডে সিএফ টাইপ করে স্বাভাবিক মিনিবাসার আচরণে ফিরে যাচ্ছে। তারপরে আপনার কাছে সাধারণ ইতিহাস ব্রাউজিং কী থাকবে। আপনি যদি এটি আগে থেকে জানেন তবে তা দ্রুত হতে পারে: Cxff :-)
@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)
সৌজন্যে উইকিম্যাকস
helm-for-filesফাইলের নাম স্বতঃ-সমাপ্তির উদ্দেশ্য এবং সুন্দর অনুসন্ধান ইন্টারফেসের উদ্দেশ্যে আমি উপরের উত্তরগুলির চেয়ে আরও ভাল কাজ পেয়েছি । এছাড়াও, আপনি আপনার পছন্দসই কোনও অনুসন্ধান আইটেম অন্তর্ভুক্ত করতে এটি কনফিগার করতে পারেন।