আমি হেলম-ফাইন্ড-ফাইলগুলিতে <RET> টিপতে কীভাবে ডিরেক্টরি খুলব?


25

আমি যখন চালনা করি #'helm-find-filesএবং কোনও ডিরেক্টরিতে পয়েন্ট <ret>মুভি করি , ফলাফলটি টিপে মোডে সেই ডিরেক্টরিটি খোলার ফল হয়। C-jহেলমে সেই ডিরেক্টরিটি প্রবেশ করতে একটিকে চাপ দিতে হবে।

আমি এখানে <RET>যেমন কাজ করতে চাই C-jতবে অন্য কোথাও প্রয়োজন হয় না। আমি চেক করেছি, এবং C-jআবদ্ধ #'helm-maybe-exit-minibuffer, যেখানে <RET>আবদ্ধ #'helm-execute-persistent-action। বাঁধাই <RET>করার #'helm-maybe-exit-minibufferএই ক্ষেত্রে জন্য কাজ করে, কিন্তু ব্রেক অন্যান্য ক্ষেত্রে: যেমন, মধ্যে হাল স্বয়ংসম্পূর্ণ describe-function

সুতরাং, কোনও ফাইল খুঁজতে হেলম ব্যবহার করার সময়, আমি কীভাবে <RET>হেলমে সেই ডিরেক্টরিটি খুলতে টিপব?


1
@ টুডো আমি অভ্যস্ত ido-mode, যেখানে টিপে টিপে <RET>ফোল্ডারটির ভিতরে ফাইলগুলি সন্ধান করা হয়। আমি মনে করি কোনও ফাইল সন্ধানের চেষ্টা করার সময় এটি সর্বাধিক সামঞ্জস্যপূর্ণ আচরণ - আপনি যখন ফাইলটি খুঁজে পেয়েছেন তখন এটি খুলতে চাইলে আপনি কী করতে চান; আপনি যখন একটি ফোল্ডার পেয়েছেন তখন কি করতে চান তা ভিতরে চলে যায় যাতে আপনি ফাইলটি সন্ধান করতে পারেন।
zck

2
হেলমের বিপরীত আচরণ রয়েছে - যখন কোনও ফাইলে থাকে তখন <RET>উভয় স্বয়ংক্রিয়ভাবে নির্বাচিত হয় এবং নির্বাচন করে। <tab>ফাইলের নাম শেষ করার জন্য আপনাকে আঘাত করতে হবে না । তবে আমরা পছন্দগুলি নিয়ে তর্ক করছি - আমি কেবল "এন্টার" বলতে চাই "বিন্দুতে জিনিসটি নির্বাচন করুন" to এবং আমার জন্য, এর অর্থ "ওপেন ডায়ার্ড" নয়। আমি যদি একটি শেল ছিল, আমি বিভিন্ন আচরণ আশা করি।
zck

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

1
আমি জ্যাক এর সাথেও আছি আইডোতে নেভিগেট করা হেলম স্ট্যান্ডার্ড আচরণের চেয়ে অনেক বেশি স্বজ্ঞাত। বিশেষত ব্যাকস্পেস কী। এটি অনুসন্ধান থেকে একটি চর মুছে ফেলা বা কোনও কিছু প্রবেশ না করা থাকলে ফোল্ডারে ফিরে আসে। এই কার্যকারিতাটি পাওয়ার জন্য কীগুলি পুনরায় লাগানোর কোনও উপায় আছে?
Fu86

1
এর মতো হাল 2.6.1 আচরণ যদি আপনি চান পূর্বনির্ধারিত।
amitp

উত্তর:


19

আমিও ব্যবহার করেছি ido-modeএকটি অনেক এবং আমার পেশী মেমরি প্রশিক্ষণ :) আমার মনে হয় idoশৈলীর চেয়ে আরও বেশি ধারণাসম্পন্ন হয় helmপদ্ধতির। আমি স্টাফ অনুসন্ধান করি (কিছু অক্ষরে টাইপ করে) এবং RETআমার ওয়েব ব্রাউজারের অনুসন্ধান / ঠিকানা বারের মতো অনুসন্ধান (হিট ) প্রতিশ্রুতিবদ্ধ। যদি নির্বাচনটি ডিরেক্টরি হয় তবে আমি এই ডিরেক্টরিটি প্রবেশ করি এবং এই ডিরেক্টরিতে আবার অনুসন্ধান শুরু করি। এটি আমার পক্ষে স্বাভাবিক বলে মনে হচ্ছে, তাই helm-execute-persistent-actionএই যান্ত্রিককে জোর করার জন্য আমি চারপাশে একটি ছোট্ট পরামর্শ লিখেছি ।

(require 'helm)
(defun fu/helm-find-files-navigate-forward (orig-fun &rest args)
  (if (and (equal "Find Files" (assoc-default 'name (helm-get-current-source)))
           (equal args nil)
           (stringp (helm-get-selection))
           (not (file-directory-p (helm-get-selection))))
      (helm-maybe-exit-minibuffer)
    (apply orig-fun args)))
(advice-add 'helm-execute-persistent-action :around #'fu/helm-find-files-navigate-forward)
(define-key helm-find-files-map (kbd "<return>") 'helm-execute-persistent-action)

আমি কীটিও backspaceকিছুটা অপ্টিমাইজ করেছি । আমি যদি কিছু টাইপ করি এবং একটি সংশোধন করতে চাই তবে আমি ব্যাকস্পেসে আঘাত করি। এটি একটি চরিত্র মুছে ফেলবে। যদি আমি ডিরেক্টরিটির শুরুতে এবং আবার ব্যাকস্পেসে আঘাত করি তবে আমি এক স্তর উপরে নেভিগেট করি। এই নাটকীয়ভাবে নেভিগেশন গতি!

(defun fu/helm-find-files-navigate-back (orig-fun &rest args)
  (if (= (length helm-pattern) (length (helm-find-files-initial-input)))
      (helm-find-files-up-one-level 1)
    (apply orig-fun args)))
(advice-add 'helm-ff-delete-char-backward :around #'fu/helm-find-files-navigate-back)

অকেজো অপসারণ .এবং ..একেবারে শুরুতে, আপনি এটি helm-boring-file-regexp-listকনফিগারেশন ভেরিয়েবলে যুক্ত করতে পারেন ।


1
যদিও হেলমের পন্থা স্টকের সাথে সামঞ্জস্যপূর্ণ find-file। আর ...সত্যিই বেহুদা suddent যখন আপনি বর্তমান বা অভিভাবক সংকলনে Dired খুলতে চান না। এবং আমি যে C-lটিপুন চেয়ে দ্রুত backspace
টু ডু

আমি এই আচরণটি আরও কিছুটা কাস্টমাইজ করতে আবার ঘুরছি - আপনি এখানে পরামর্শ ব্যবহার করার কোনও কারণ নেই, এবং ফু / হেলম-ফাইন্ড-ফাইলগুলি-নেভিগেট-ফোরডিকে সরাসরি বাঁধেন না (kbd "<return>")? নতুন ফাংশনের অভ্যন্তরে কেবল হেলম-এক্সিকিউটিভ-প্রসিডেন্ট-অ্যাকশনটি কল করা একটু ক্লিনার বলে মনে হচ্ছে।
zck

দুর্ভাগ্যক্রমে, এটি আমার পক্ষে কাজ করে না। সবার আগে, আমি পেয়েছি Symbol's value as variable is void: helm-find-files-map। আমি যখন (helm-mode 1)পরে রাখি তখন আমি এ জাতীয় (require 'helm)কোনও ত্রুটি পাই না তবে এটি কার্যকর হয় না। কোন আইডিয়া আমি কি অনুপস্থিত হতে পারে? এখানে আমার সম্পূর্ণ init.el: পেস্টবিন. com/drFZsDxW ইমাস সংস্করণটি 24.4.1 (i686-pc-mingw32)
গিয়ার

আমার পক্ষে কাজ করেনি। এমনকি define-key, আমি যদি C-h k RETফাইন্ড-মিনি মিনিফার চেষ্টা করি তবে এটি এখনও helm-confirm-and-exit-minibufferআবদ্ধ হিসাবে দেখায় ।
রাফায়েল ইব্রাহিম

@ রাফায়েলআইব্রাইম ব্যবহারের চেষ্টা করুন (কেবিডি "
আরইটি

0

আমি প্রতিনিধি কারণে Fu86 এর উত্তর সম্পর্কে মন্তব্য করতে পারবেন না কিন্তু আমি পিগি এটি সমর্থন করছি (দুঃখিত, এটি স্বাভাবিক প্রোটোকল না হলে)। "শিরোনাম-অনুসন্ধান-ফাইল-মানচিত্র" এর কারণে আমি তার উত্তরটি ব্যবহার করে একটি অকার্যকর ফাংশন পেয়েছি। পরিবর্তে "হেল্ম-মানচিত্র" কী মানচিত্রটি ব্যবহার করার জন্য এটি আমার পক্ষে কাজ করেছিল। এখনও পর্যন্ত কোনও বিরোধ নেই এবং এটি সেই আচরণটি যা আমি খুঁজছিলাম।

... (define-key helm-map (kbd "<return>") 'helm-execute-persistent-action) ...


-1

আমি @ ফু 86৮ এর কাজের উত্তর পেতে পারি না তবে নিম্নলিখিতগুলি আমার পক্ষে কাজ করেছে:

(defun jkf/helm-find-files-navigate-forward (orig-fun &rest args)
  (if (file-directory-p (helm-get-selection)) 
      (helm-execute-persistent-action)
    (apply orig-fun args)))
(advice-add 'helm-confirm-and-exit-minibuffer 
   :around #'jkf/helm-find-files-navigate-forward)

এটিও দেখুন: /programming/

সম্পাদন করা

আমার সমাধানটি হেল্ম -20141112.946 এ কাজ করে তবে হেল্ম -20160211.934 এ এটি কাজ করে না এবং @ ফু 86 উত্তর উত্তরটি সমাধান

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