প্রোগ্রামযুক্তভাবে ডায়ার্ড বাফারে ফাইল sertোকান


10

আমার কাছে ফাইল নামের একটি তালিকা রয়েছে (পুরো পথ সহ) এবং আমি ফাইলগুলির এই সেটটি তালিকাভুক্ত একটি ডায়ার্ড বাফার তৈরি করতে চাই। আমি কীভাবে এটি করতে যাব?

আমি কীভাবে ফাইলের নামের তালিকা থেকে একটি বিরক্তিকর বাফার তৈরি করব?

বাহ্যিক নির্ভরতা ব্যবহার না করে।


পরিষ্কার করে বলো. আপনার তালিকার স্ট্রিংগুলি কী কী) আপনি যে ফাইলগুলি তৈরি করতে চান তার নাম বা খ) ফাইলের বিষয়বস্তু (যার জন্য আপনি পরম পথে আছেন)?
ড্যান

@ ড্যান পরম পাথ সহ ফাইলের একটি তালিকা of শুধু ফাইলের নাম।
টু ডু

1
যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আপনি কেবল (find-file your-directory-path)প্রাসঙ্গিক diredবাফারটি ব্যবহার করতে পারেন (যেমন, (find-file "/tmp/")আপনার tmpডিরেক্টরিটি একটি diredবাফারে খোলা হবে )।
ড্যান

1
আপনি এই মন্তব্যে যা বলেছিলেন তার ভিত্তিতে আমি আপনার প্রশ্ন সম্পাদনা করেছি। আমার যদি ভুল হয়ে থাকে তবে নির্দ্বিধায় রোলব্যাক করুন।
মালবারবা

3
যদি আপনি খুব ছোট সংক্ষিপ্ত উত্তর সহ এলিস্পে ফাইল অবজেক্টগুলি সম্পর্কে জিজ্ঞাসা করতে চান তবে এটির কোনও উত্তর নেই। :-)
মালবারবা

উত্তর:


20

C-h f diredউত্তর আপনাকে বলে। কেবল যুক্তি diredহিসাবে DIRNAME, একটি তালিকা যা তার গাড়ী হিসাবে আপনার পছন্দসই বাফার নাম (যে কোনও স্ট্রিং) রয়েছে এবং সিডিআর হিসাবে আপনি যে ফাইলের নাম বাফারে তালিকাভুক্ত করতে চান তার তালিকা রয়েছে। সাধারণত, আপনি নিখুঁত ফাইলের নাম ব্যবহার করতে চান। উদাহরণ স্বরূপ:

(dired (list "My Dired Buffer Name*"     ; The Dired buffer name
             "/usr/foo/file1.el"         ; First file
             "/usr/bar/toto/some-file.c" ; Second file
             "/whatever/directory/"      ; Third is a directory
             "/a/file/somewhere.zzz"))   ; Fourth

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

(setq ls-lisp-use-insert-directory-program nil)
(require 'ls-lisp)

যদি আপনি লাইব্রেরি ডায়ার্ড + ( dired+.el) ব্যবহার করেন তবে আপনি ইন্টারেক্টিভভাবে তালিকাতে ফাইল এবং ডিরেক্টরি চয়ন করতে পারেন: কেবলমাত্র diredএকটি ইতিবাচক উপসর্গ যুক্ত করুন (যেমন, <= 0)। এরপরে আপনাকে ডিরেক্টরিগুলি এবং তালিকাভুক্ত ফাইলগুলির নামের জন্য বারবার অনুরোধ করা হবে। *মিলে যাওয়া ফাইল এবং ডিরেক্টরিগুলি অন্তর্ভুক্ত করতে আপনি ফাইল-নাম ওয়াইল্ডকার্ডগুলি (যেমন গ্লোব্বিংয়ের জন্য) ব্যবহার করতে পারেন । C-gইনপুটিং শেষ করতে ব্যবহার করুন ।

অন্য কথায়, একটি একক ডিরেক্টরিকে তালিকাবদ্ধ করার পরিবর্তে, ডিয়ারড বাফার বিভিন্ন ডিরেক্টরি এবং ফাইলের নাম তালিকাভুক্ত করতে পারে যা বিভিন্ন ডিরেক্টরি গাছের সাথেও অন্তর্ভুক্ত থাকতে পারে।

(একটি অ নেতিবাচক উপসর্গ ARG (অর্থাত,> = 0) করার জন্য আপনাকে অনুরোধ জানানো lsতালিকা সুইচ সুতরাং একটি শূন্য উপসর্গ ARG উভয় সুইচ এবং ফাইল / তালিকাতে dirs জন্য অনুরোধ জানানো আপনি। প্রথম ls। সুইচ এবং তারপর ফাইল / dirs)


আচ্ছা, আমি এটি কমান্ড ব্যবহার না করে, এলিস্পে করতে চাই। আমি কেবল একটি সরল কোড স্নিপেট চাই যা একটি ফাইলের নাম (পুরো পথ সহ) ডায়ার্ড বাফারে একটি এন্ট্রিতে রূপান্তরিত করে, আমি কীভাবে বাফারটিতে (insert ...)পাঠ্য সন্নিবেশ করতে ব্যবহার করি তার অনুরূপ ।
টু

1
@ টুডো: diredএকটি এলিস্প ফাংশন। কেবল (dired '("my-list" "/home/rekado/dev/script.scm" "/home/rekado/another-file"))এটির মূল্যায়ন করুন: এবং @ ড্রু লিখেছেন এই ফাইলগুলি সমন্বিত একটি ডায়ার্ড বাফার পাবেন।
rekado

@ রেকাডো .ধন্যবাদ। এখন আমি উত্তরটি যথাযথভাবে আবার পড়ি যা আপনি বলেছিলেন এর মতো আমি কেবল আপনার মতো একটি এলিস্প কোড স্নিপেট দেখতে চাই এবং আমি ভেবেছিলাম যে ড্র আমি যখন এটির ঝলক দেখিয়েছিলাম তখন একটি ব্যবহারকারী কমান্ড উত্তর দিয়েছিল।
আপনি

@ ড্রু দয়া করে রেকাডোর উদাহরণ যোগ করুন। আপনার উত্তরের জন্য ধন্যবাদ.
টু

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

2

ফাইলগুলির তালিকা যখন বাফারে থাকে প্রতি লাইন প্রতি একটি ফাইল সহ, এটি করার জন্য এখানে একটি আদেশ রয়েছে।

(defun dired-virtual-vanilla ()
  (interactive)
  (dired (cons "*Dired*" (split-string (buffer-string) "\n" t))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.