কিছুটা আলাদা নামের সাথে বর্তমান ফাইলটি সংরক্ষণ করুন


17

আমার ফাইলগুলিতে দীর্ঘ ফাইলের নাম রয়েছে এবং ফাইলের একটি অংশ একটি তারিখ এবং সংস্করণ নম্বর। প্রায়শই আমি প্রায় একই নাম ব্যবহার করে বাফারে ফাইলটি সংরক্ষণ করতে চাই , কেবল সংস্করণ নম্বর বা তারিখ পরিবর্তন করুন।

এটি অনেক সহজ হবে, যদি আমার কাছে একটি কমান্ড থাকে যা বর্তমান বাফারের C-x C-wফাইলের নামটি কিল রিংয়ের মধ্যে রাখে, যাতে আমি একটি ফাইল খুলতে পারি, তারপরে (ফাইল লিখি) টাইপ করতে পারি , সাইটির সাথে বর্তমান নামটি ইঙ্ক করে, পরিবর্তন করতে এবং সংরক্ষণ করতে পারি এটা।

আমি উইন্ডোজ এ ইম্যাক্স 24.3 এবং লিনাক্সে 24.4 ব্যবহার করছি। বিভিন্ন কারণে আমাকে বিভিন্ন ফাইলের নাম ব্যবহার করতে হবে, গিট নাও। এই কমান্ডটি অ্যাকটেক্স / ল্যাটেক্সের সাথে মেজর মোড হিসাবে কাজ করলে আমি খুশি হব।


সম্পাদনা 1:

আমি একটি ভুল করেছি: আমি টাইপ করতে চাই না C-x C-f(= ফাইলটি সন্ধান করুন) তবেC-x C-w (= ফাইল লিখুন)। আমি উপরে এটি সংশোধন করেছি।

সম্পাদনা 2:

একটি সদৃশ প্রশ্ন এবং উত্তর পাওয়া গেছে: /unix//a/45381 তবে এর চেয়ে ভাল আর কোনও নেই!

সম্পাদনা 3:

এখানে: http://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Compferences.html একটি ফাংশন, যা ফাইলনামের "ননডাইরেক্টরি" অংশটি নির্বাচন করে:

ফাংশন: ফাইল-নাম-ননডাইরেক্টরি ফাইল নাম

This function returns the nondirectory part of filename.

          (file-name-nondirectory "lewis/foo")
               ⇒ "foo"
          (file-name-nondirectory "foo")
               ⇒ "foo"
          (file-name-nondirectory "lewis/")
               ⇒ ""

আমি যদি কেবল লিস্প জানতাম ...


ওহ, হ্যালো ওখানে কেকস :) আমি নিজেই এই নিজেকে অনেকবার ভাবছি ... ভাল প্রশ্ন। এবং লিস্প সহজ ......
শন অলরেড

এই প্রশ্নটি সবেমাত্র পাওয়া গেল ... কৌতূহলের বাইরে: "বিভিন্ন কারণে" উপদেষ্টা / কোঅর্ডার-সম্পর্কিত ...?
এমবার্ক

1
@ এমবার্ক আমি একজন আইনজীবী এবং চিঠিপত্র লিখি পাশাপাশি চুক্তি করি। কারও কাছে একটি সাম্প্রতিক চিঠি খোলা, এটির নতুন নামকরণ করুন, সামগ্রীটি প্রস্তুত করুন এবং একই ব্যক্তিকে একটি নতুন লেখা শুরু করা স্ক্র্যাচ থেকে শুরু করার চেয়ে দ্রুত। তবে চুক্তিগুলির নামকরণের ক্ষেত্রে কোনও সিভিএসের জন্য দুর্বল বিকল্প, তবে আমি ল্যাকেক্স এবং গিট ব্যবহারকারী অন্য কোনও আইনজীবীর সাথে কখনও সাক্ষাত করতে পারি নি, তাই আমাকে চুক্তির একটি নতুন সংস্করণকে একটি নতুন ফাইলের নাম দিতে হবে ...
কেকস ডোজ

যথেষ্ট ফর্সা। ইয়াএসনিপেট সম্পর্কে কী? এটি আপনার ব্যবহারের ক্ষেত্রে খুব উপযুক্ত বলে মনে হচ্ছে।
mbork

@ এমবার্ক হ্যাঁ, আমার টেম্পলেটগুলির জন্য আমি বছরের পর থেকে YASnippets ব্যবহার করছি। ল্যাটেক্স, ইম্যাকস, অর্গমোড, ইয়াএসনিপেটগুলি আমার পিসিকে ওয়ার্ড এবং আউটলুকের চেয়ে অনেক বেশি নির্ভরযোগ্য করে তুলেছে। ঠিক আছে, আমি এটি একটি লিনাক্স মেশিনে লিখছি, তবে এটি সাধারণ আইটি হেল্পডেস্কের কাছ থেকে আপনি সত্যিই আশা করতে পারেন না: উইন্ডোজের পরিবর্তে লিনাক্স সমর্থন করতে।
কেকস ডোজ

উত্তর:


23

এত কিছু করার দরকার নেই।

কেবল:

  1. এখনও মূল ফাইল, হিট C-x C-w। আপনাকে একটি নতুন ফাইলের নাম জিজ্ঞাসা করা হবে।
  2. হিট করুন M-nএবং বর্তমান ফাইলের নামটি আপনার জন্য sertedোকানো হবে।
  3. আপনি যা চান তা সম্পাদনা RETকরুন এবং এই নতুন নামে ফাইলটি সংরক্ষণ করতে আঘাত করুন।

আপনার কাছে এখনও মূল ফাইল থাকবে। আপনি যদি এটিতে ফিরে যেতে চান তবে এটির সাথে আবার এটি দেখুন C-x C-f


ফাইল / সেভিং সম্পর্কে ইম্যাক্সের ম্যানুয়ালটিতে আমার নজর ছিল তবে এই কৌশলটি খুঁজে পেল না। আপনি কিভাবে খুঁজে পেলেন? গ্রেট!
কেকস ডোজ

4
নিশ্চিত না. এটি মিনিবিফার প্রম্প্ট সম্পর্কে সাধারণ বিষয়। এমপি হিট করা ইতিহাসের মধ্য দিয়ে যায় এবং এমএনকে আঘাত করা আপনাকে "বর্তমান" বিকল্প দেয়।
মালবারবা

5
আপনি ব্যবহার করে থাকেন ido, কি C-fপ্রথম এবং তারপর M-n
দক্ষ মোদি

1
বাহ, আমি এটি কখনই জানতাম না। ধন্যবাদ! (দুঃখিত জন্য "ধন্যবাদ, আমিও" মন্তব্য, কিন্তু এই কিছু সহজ কিন্তু দরকারী শেখার একটি বড় উদাহরণ ভিভা লা emacs.stackexchange।
মার্ক Aufflick

3

বর্তমান বাফারে ফাইলের নাম অনুলিপি করা হচ্ছে

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

 
;; সূত্র: http://camdez.com/blog/2013/11/14/emacs-show-buffer-file-name/
(শো-কপি-বাফার-ফাইল-নাম ডিফুন করুন)
  "মিনিবুফারে বর্তমান ফাইলটির পুরো পথটি দেখান এবং এটি কিল-রিংয়ে অনুলিপি করুন।"
  (ইন্টারেক্টিভ)
  (আসুন ((ফাইলের নাম (বাফার-ফাইলের নাম))))
    (যদি ফাইল-নাম হয়
        (progn
          (বার্তা ফাইলের নাম)
          (নতুন ফাইল-নাম হত্যা করুন)
      (ত্রুটি "বাফার কোনও ফাইল দেখার জন্য নয়"))))

বর্তমান বাফারে ফাইলটির নাম পরিবর্তন করে

ম্যাগনার সুইভেন তার ব্লগে নীচের ফাংশনটি প্রয়োগ করেছেন যা একসাথে সুবিধামত বর্তমান বাফারের নামকরণ করে। এটি আপনি যা চেয়েছিলেন তা নয় তবে আমি ভেবেছিলাম এটি আপনার ব্যবহারের ক্ষেত্রে সম্পর্কিত হতে পারে।

;; সূত্র: http://www.wutthimacsd.com/
(বর্তমানের বাফার-ফাইলের নাম পরিবর্তন করুন)
  "বর্তমান বাফারের নাম পরিবর্তন করে এবং ফাইলটি এটি পরিদর্শন করছে" "
  (ইন্টারেক্টিভ)
  (যাক ((নাম (বাফার-নাম))
        (ফাইলের নাম (বাফার-ফাইল-নাম)))
    (যদি (না (এবং ফাইলের নাম (ফাইল-উপস্থিত-পি ফাইল নাম)))
        (ত্রুটি "বাফার '% s' কোনও ফাইল দেখছে না!" নাম)
      (আসুন (নতুন নাম (ফাইলের নাম পড়ুন-নতুন নাম: "ফাইলের নাম)))
        (যদি (গেট-বাফার নতুন নাম)
            (ত্রুটি "'% s' নামের একটি বাফার ইতিমধ্যে বিদ্যমান!" নতুন নাম)
          (নতুন নাম ফাইল-ফাইল নাম নতুন নাম 1)
          (নতুন নাম-বাফার নতুন নাম)
          (সেট-ভিজিট-ফাইল-নাম নতুন নাম)
          (সেট-বাফার-পরিবর্তিত-পি শিল)
          (বার্তা "ফাইল '% s' সাফল্যের সাথে '% s' এ পুনরায় নামকরণ করা হয়েছে।"
                   নাম (ফাইল-নাম-ননডাইরেক্টরি নতুন নাম)))))))

ম্যাগনার সোভেনের সমাধানটি আসল ফাইলটি মুছে দেয় এবং কেবলমাত্র পরে পুনরায় নামকরণ করা ফাইল থাকবে। এটি দরকারী, তবে আমার পুরানো ফাইলটি পাশাপাশি নতুন নামকরণ করা দরকার। ক্যামেরন ডেসাটেলের ফাংশনটি পুরো নাম দিয়ে ফাইলের নাম অনুলিপি করে। এটি আমার প্রয়োজনীয় সমাধানের বেশ কাছাকাছি। আপনি কীভাবে এই ফাংশনটি পরিবর্তন করবেন জানেন, যাতে এটি কেবল পথ ছাড়াই ফাইলের নাম ছড়িয়ে দেয়? তবে আপনাকে অনেক ধন্যবাদ।
কেকস ডোজ

1
@KeksDose শুধু পরিবর্তন (buffer-file-name)করার (file-name-nondirectory (buffer-file-name))প্রথম ফাংশনে ফাইলের নাম ব্যতিত ডিরেক্টরির জন্য।
নিসপিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.