আমি প্রাথমিক পরীক্ষা <tab>
করার পরে ঠিকঠাক কাজ করে বলে মনে করে এমন একটি জিনিস পেয়েছি: মূলত: পুনরায় প্রত্যাবর্তন করা হয় pcomplete-std-complete
, তবে যেহেতু সেই ফাংশনটি কোনও কারণে ইন্টারেক্টিভ নয়, আপনাকে এটি মোড়ানো দরকার:
(define-key eshell-mode-map (kbd "<tab>")
(lambda () (interactive) (pcomplete-std-complete)))
pcompete-std-complete
চেষ্টা সম্পূর্ণকরণ জন্য লিখিত ব্যবহার করতে pcomplete
মান সমাপ্তির UI 'তে, যার ivy
ডিফল্ট ভাবে অগ্রাহ্য করবে (খুব সাম্প্রতিক আপডেট সঙ্গে, তারা কাছাকাছি বিন্দু eshell বাফারে একটা চমৎকার আস্তরণ ডানদিকে প্রদর্শিত!)।
এর উত্স কোডের মন্তব্যে pcomplete-completions-at-point
(যা pcomplete-std-complete
নির্ভর করে) বেশ কয়েকটি সম্ভাব্য সমস্যার উল্লেখ করেছে:
;; FIXME: it only completes the text before point, whereas the
;; standard UI may also consider text after point.
;; FIXME: the `pcomplete' UI may be used internally during
;; pcomplete-completions and then throw to `pcompleted', thus
;; imposing the pcomplete UI over the standard UI.
আমি মনে করি যে প্রথমটি আমাকে প্রভাবিত করবে না, যেহেতু আমি মনে করি না যে <tab>
ইনপুট লাইনের শেষে ছাড়া আমি কখনও চাপবো না। আমি এখন পর্যন্ত দ্বিতীয় সমস্যার পৃষ্ঠটি দেখিনি।
সম্পাদনা: যারা এ্যাসেলের কুইর্কস (এটি একটি শ্রুতিমধুরতা) এর সাথে অপরিচিত তাদের জন্য সম্ভবত আমার যুক্ত করা উচিত যে উপরের পরামর্শ অনুসারে এসেলের কীটি পুনর্নির্মাণ করার জন্য আপনার এটিকে আপনার থ্রাই ফাইলটিতে রাখা উচিত:
(add-hook 'eshell-mode-hook
(lambda ()
(define-key eshell-mode-map (kbd "<tab>")
(lambda () (interactive) (pcomplete-std-complete)))))
আপনি অপচয়কারী কী-বাইন্ডিংস-ইন-হ-অ্যান্টিপ্যাটার্নের জন্য আমার দিকে চিত্কার করার আগে, আমাকে বোঝাতে দিন যে এসেক্সেল এর কীম্যাপটি ঘোষনা করে (defvar eshell-mode-map nil)
এবং তারপরে (setq-local eshell-mode-map (sparse-keymap))
ভিতরে করে eshell-mode
! ( ;; FIXME: What the hell!?
কোডটিতে একটি সহায়ক রয়েছে )) এর অর্থ আপনি eshell-mode
রান না করা পর্যন্ত কীগুলি পুনর্নির্মাণ করতে পারবেন না ! অতএব হুক।
(add-hook 'eshell-mode-hook '(lambda ()
চারপাশে মোড়ানো দরকার।