যখন আমি ইতিমধ্যে কেবল ফাইলের নামটি পেস্ট করতে পারি তখন ইডাকে কীভাবে বেরিয়ে যেতে বলা যায়?


14

আমি নিজেকে ইডো মোড ব্যবহার করার চেষ্টা করছি। কিছু সময় এটি দুর্দান্ত, তবে অন্য সময় এটি অত্যন্ত বোকা। এখানে আমার সবচেয়ে বড় হতাশা।

আমি পুরো ফাইলের নাম সহ কিছু লগ পড়ি, তারপরে আমি একটি নাম অনুলিপি করি, সেই ফাইলটি খোলার চেষ্টা করি।

ইডো ছাড়া এটি করার উপায়: C-aC-yC-kRET

ইডির সাথে দুটি বড় সমস্যা রয়েছে:

  1. আমার কাছে যদি পুরো ফাইলের নাম থাকে তবে ইনপুট করার কোনও উপায় নেই (আমাকে অবশ্যই প্রথম স্ল্যাশ সরিয়ে ফেলতে হবে, অন্যথায় টিপতেও কোনও লাভ //হবে না।

  2. বাকীটি অবিস্মরণিত রেখে ফাইলের নামের মধ্যবর্তী অংশগুলি সম্পাদনা করতে পারছি না।

নাকি পারি?


2
আপনি স্টক ফিরে ড্রপ করতে পারেন find-fileসঙ্গে C-x C-fএবং সাধারনত মধ্যে পেস্ট করুন। তবে তারপরে, এটি আরও কীস্ট্রোক। অথবা আপনি হেলম ব্যবহার করতে পারেন যদি আপনি কোনও বৈশিষ্ট্য সমৃদ্ধ চান find-fileএবং এখনও আপনার ব্যবহারের ক্ষেত্রে সন্তুষ্ট হন।
আপনি ডু

1
আহ, ধন্যবাদ, নাহ, আমার এটা করো না , যাতে প্রায়ই যে আমি দুটি অতিরিক্ত কীস্ট্রোকগুলি সম্পর্কে অভিযোগ চাই। এটি আসলে আপাতত আমার প্রয়োজনের উত্তর দেবে। ধন্যবাদ!
wvxvw

@ টিউ ডু আপনার কি নীচে উত্তর হিসাবে এটি করা উচিত। আমি C-x C-fফালব্যাকটি অনেকবার দরকারী বলে খুঁজে পেয়েছি !
দক্ষ মোদী

উত্তর:


17

কোনও idoকমান্ড সক্রিয় থাকাকালীন ( ido-find-fileএই ক্ষেত্রে), আপনি একই কমান্ডের নন-ইডো সংস্করণে ফিরে যেতে পারেন ( find-fileএই ক্ষেত্রে) এর জন্য আইডো-ডিফল্ট বাইন্ডিং C-x C-fব্যবহার করে ido-fallback-command

আপনার প্রশ্নের উত্তর দিতে,

  • প্রথম C-x C-fফোন করবে ido-find-file
  • দ্বিতীয়টি C-x C-fপিছনে পড়বে find-file
  • তারপরে আপনি C-a C-y C-k RETমিনিপুফায়ারে অনুলিপি করা একটি অনুলিপি ফাইলের পথটি সাধারণত করতে পারেন।

দ্রষ্টব্য: ইন ido, C-x C-f C-x C-fএকই কাজ করবে C-x C-f C-f, যেমন পিছনে পড়ুন find-file

সম্পর্কে C-fইনido ইন ido-mode, C-fআবদ্ধ ido-magic-forward-char। থেকে ido.el,

(আইডো-ম্যাজিক-ফরোয়ার্ড-চরকে ডিফুন করুন)
  "ব্যবহারকারী ইনপুটতে এগিয়ে যান বা যাদু ক্রিয়া সম্পাদন করুন।
যদি কোনও ব্যবহারকারীর ইনপুট উপস্থিত না থাকে বা ইনপুট শেষে থাকে, যাদু ক্রিয়া সম্পাদন করুন:
সিএক্স সিবি ... সিএফ 'আইডো-ফাইন্ড-ফাইল' এ স্যুইচ করুন।
সিএক্স সিএফ ... সিএফ ফালব্যাক নন-ইডো `ফাইন্ড ফাইল-এ।
সিএক্স সিডি ... সিএফ ফালব্যাক নন-ইডো সংক্ষিপ্ত 'ডায়ার্ড'।
Cx d ... সিএফ ফালব্যাক নন-ইডো `ডায়ার্ড 'to

2
আমার কাছে এটি কেবল C-fফিরে আসা find-file, নয় C-x C-f। আমি দেখতে পাচ্ছি না যে আমি এটিকে কাস্টমাইজ করেছি (এবং আমি এখানে অন্যদের মতো ফ্যালব্যাকের উপর অনেক বেশি নির্ভর idoকরি now এটি কিছুক্ষণ ব্যবহার করার পরে এটি যতটা মূল্যবান তার পক্ষে প্রায় যতটা ঝামেলা।
হার্পো

1
@ হারপো আমি কেন উপর C-x C-f C-fকাজ করে তা ব্যাখ্যা করে উপরে উত্তরটি সবেমাত্র আপডেট করেছি ।
कौशल মোদী

বেশিরভাগ কাজের জন্য @ কেউশালমোদিকে ধন্যবাদ। আমার উত্তরটি মন্তব্যের মতো প্রাথমিকভাবে সহজ। এটি তার উত্তর হওয়া উচিত :) বিশ্বাসযোগ্যতার জন্য একটি নোট।
আপনি

এটি আমার বিচক্ষণতা বাঁচিয়েছিল, কারণ ইডো পরম পাথগুলি ব্যবহার করার সময় ট্র্যাম্পের সাথে সুন্দরভাবে খেলেনি। ধন্যবাদ.
Jérémie

6

আপনি পুরো পথের নাম নিয়ে কাজ করছেন তা প্রদত্ত, অন্যান্য পদ্ধতিগুলি কাজ করতে পারে:

  • ব্যবহার M-x ffap( find-file-at-point): এটি স্বয়ংক্রিয়ভাবে পাথের নামটি পড়বে এবং ফাইলটি খুলবে
  • সক্রিয় করুন M-x compilation-shell-minor-modeযা পাথের ফন্টটি পরিবর্তন করবে এবং এগুলিকে "ক্লিকযোগ্য" (মুখের সাহায্যে বা RET) তৈরি করবে। এটিতে ক্লিক করা আপনাকে সেই ফাইল এবং নির্দিষ্ট লাইনে নিয়ে আসে এবং আপনি ব্যবহার করতে next-errorএবং previous-errorনেভিগেট করতে পারেন । আমি প্রায়শই এটি ব্যবহার করি, যেমন শেল-মোডের মতো

5

যেহেতু সবসময় এটি করার একাধিক উপায় রয়েছে, তাই এখানে @ আবো-অ্যাবো ধারণার একটি ভিন্নতা যা আইডো সমাপ্তিকে সচল রাখে সাধারণ ফাইন্ড কমান্ডের পরিবর্তে ফিরে যাওয়ার পরিবর্তে active

(defun ido-yank ()
  (interactive)
  (let ((path (current-kill 0)))
    (if (file-exists-p path)
        (progn
          (let ((dir (file-name-directory path)))
            (if dir (ido-set-current-directory dir)))
          (setq ido-exit 'refresh)
          (setq ido-text-init (if (file-directory-p path) nil (file-name-nondirectory path)))
          (setq ido-rotate-temp t)
          (exit-minibuffer))
      (yank))))

(define-key ido-file-dir-completion-map (kbd "C-y") 'ido-yank)

এই বাঁধাইয়ের সাথে:

  • যদি বর্তমান কিলটি একটি বৈধ ডিরেক্টরি পাথ হয়, আপনি শুরু করতে পারেন ido-find-file, C-yইয়াঙ্কড ডিরেক্টরিতে লাফিয়ে আঘাত করতে পারেন এবং তারপরে কোনও ফাইল চয়ন করতে আইডো সমাপ্তি ব্যবহার চালিয়ে যেতে পারেন।

  • যদি বর্তমান কিলটি একটি বৈধ ফাইলের পথ হয় তবে আপনি শুরু করতে পারেন ido-find-file, C-yইয়াঙ্কড ডিরেক্টরিতে লাফিয়ে আঘাত করতে পারেন এবং ইয়াঙ্কড ফাইলের নামটি সমাপ্তি হিসাবে সরবরাহ করতে পারেন এবং সেই ফাইলটি খোলার জন্য আরইটি টিপুন।

  • যদি বর্তমান কিলটি অন্য কিছু হয় তবে এটি স্বাভাবিকভাবে ইয়াঙ্কড হয়ে যায়।


letবিভিন্ন ido-...ভেরিয়েবলের পরিবর্তে এটি বেঁধে রাখা ভাল না setq? এখনই, দেখে মনে হচ্ছে আপনি স্থায়ীভাবে ফাংশনটির জীবনযাপনের চেয়ে মানগুলি সেট করছেন setting
ড্যান

@ ড্যান আমি ইডো কমান্ডের মতো প্যাটার্ন অনুসরণ করছি ido-next-work-directory। আমার ধারণা ভেরিয়েবলগুলি সেট হয়ে যায় যাতে তারা প্রস্থান-মিনিবাসার কল এবং পরবর্তী রিফ্রেশ জুড়ে বেঁচে থাকে। তবে আমি এখনও পুরোপুরি ইডো ইন্টার্নালগুলি ছাঁটাই করছি না!
গ্লুকাস

হ্যাঁ, আমি ভাবছিলাম যে তারা পরবর্তীকালে যেভাবে সতেজ হয়। শুধু একটি মাথা আপ করতে চেয়েছিলেন।
ড্যান

4

সম্ভবত এটির মতো:

(define-key ido-file-dir-completion-map (kbd "C-y") 'ido-yank)
(defun ido-yank ()
  (interactive)
  (if (file-exists-p (current-kill 0))
      (ido-fallback-command)
    (yank)))

যদি বর্তমান কিল একটি বিদ্যমান ফাইল থাকে তবে তা C-y C-y করা আপনার সম্ভবত যা দিতে চান তা করা উচিত।

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