শেল-মোড এবং টার্ম-মোডে PWD পরিবর্তিত হলে ডিফল্ট ডিরেক্টরিটি স্বয়ংক্রিয়ভাবে আপডেট করুন update


12

default-directoryওয়ার্কিং ডিরেক্টরিটি পরিবর্তিত হয় shell-modeএবং যদি কোনও বিকল্প বা প্যাকেজ আপডেট হওয়ার কারণ থাকে term-mode? cdঅর্থাত্ ব্যবহারের সময় , তবে সমাধানটি কেবলমাত্র এই নির্দিষ্ট কমান্ডের জন্য এবং আরও কয়েকজনকে অনুসন্ধান করার চেয়ে আরও দৃust় হতে হবে - এটি আসলে $PWDপ্রতিটি কমান্ডের পরে মূল্যটি পরীক্ষা করা উচিত , আমি ভাবব think

আরও গুরুত্বপূর্ণ বিষয় যদিও এটি একটি স্থানীয় বা ডিরেক্টরি হিসাবে তৈরি করা হয়েছিল যা প্রথমে তৈরি হয়েছিল shell-modeবা term-modeবাফার থেকে একটি রিমোট মেশিনের সাথে সংযোগ করার সময়ও এটি কাজ করা উচিত default-directory। এটাই আসলে আমার প্রয়োজনীয় বৈশিষ্ট্য: আমি এই জাতীয় টার্মিনালগুলিতে যে কমান্ডগুলি টাইপ করি তা কোনও দূরবর্তী মেশিনে চালিত হয় কিনা তা প্রোগ্রামগতভাবে বলতে সক্ষম হয়েছি। আমি সেই তথ্যটি একটি সঠিকভাবে সেট default-directoryএবং চিত্রের আকারে পেতে চাই যদি সেগুলি পাওয়ার কোনও উপায় থাকে তবে এটি করার সরঞ্জামটিও উপরে বর্ণিত হিসাবে স্থানীয়ভাবে কাজ করবে।


আপনি কি দেখেছেন dirtrack-mode? এটিতে একটি হুক রয়েছে যা আপনি যা চান তা করতে পারে।
জে ডেভিড স্মিথ

উত্তর:


12

আমি মনে করি আপনার প্রশ্নের প্রথম অংশটি দিয়ে করা যেতে পারে dirtrack-mode। প্রথমত, আপনি বর্তমান কার্যক্ষম ডিরেক্টরি অন্তর্ভুক্ত করতে আপনার শেল প্রম্পট সেট করেছেন। এরপরে, আপনি dirtrack-listএকটি রেইজেক্স সেট করলেন যা dirtrack-modeএটি কীভাবে এক্সট্রাক্ট করবে tells উদাহরণ: আমি PS1এটিতে বাশকে সেট করেছিলাম :

export PS1="[\h:\w] $ "

এবং ইমাসে আমি সেট করেছিলাম dirtrack-listএবং চালু করেছি dirtrack-mode:

(set-variable 'dirtrack-list '("^.*[^ ]+:\\(.*\\)]" 1 nil))
(dirtrack-mode 1)

( এই দুর্দান্ত ব্লগ পোস্ট থেকে নেওয়া ।)

এর পরে, আমি ইচ্ছামত ডিরেক্টরি পরিবর্তন করতে সক্ষম হচ্ছি এবং যাওয়ার সাথে সাথে পরিবর্তন করতে default-directoryপারি। এটি যদি শেল হয়ে আমি এসএসএইচ করে এমন কোনও দূরবর্তী মেশিনেও চলে যেখানে আমি প্রম্পটটি একইভাবে সেট করে রেখেছি - cd /etc/apache2, রিমোট মেশিনে, পরিবর্তন default-directoryকরে /etc/apache2। দ্রষ্টব্য, তবে এটি স্থানীয় - দূরবর্তী যন্ত্রের ক্ষেত্রে, default-directoryএখনও স্থানীয় মেশিনে সেট করা /etc/apache2থাকবে ।

যদি আমি আপনার প্রশ্নের দ্বিতীয় অংশটি বুঝতে পারি, আপনি অন্য কোনও মেশিনে এসএসএইচিংয়ের সময় default-directoryএমন কিছুতে সেট আপ করতে চান remote-machine:/etc/apache2Ssh-el ব্যবহার করার সময় , আপনি ssh-directory-tracking-modeএই কাজটি করতে দৌড়াতে পারেন । উদাহরণস্বরূপ, আমি যদি চালিত M-x ssh, সিডি টু /etc/apache2, তবে রান করুন C-x C-f, আমি যে প্রম্পটটি দেখছি তা হ'ল:

Find Files or Url: /scp:aardvark@remote-machine:/etc/apache2

আপনি হাতে হাতে 'এমএক্স এসএস-ডিরেক্টরি-ট্র্যাকিং-মোডে' চালাতে পারেন তবে এসএস-মোডের জন্য এটি হুক হিসাবে সেট করা আরও সুবিধাজনক:

(setq ssh-mode-hook 'ssh-directory-tracking-mode)

অধিক তথ্য:


2
দুর্দান্ত উত্তর, ধন্যবাদ! আমি আসলে এটিতে আগ্রহী কারণ আমার লেখা একটি প্যাকেজগুলির বৈশিষ্ট্যগুলি বেড়েছে যা এটি আকাঙ্ক্ষিত করে তুলবে। এটি with-editorযা Magit এর পরবর্তী প্রকাশের দ্বারা ব্যবহৃত হবে। ম্যাজিট নিজেই with-editor'গুলি shell-mode/ সমর্থন সমর্থন করে না term-mode, তাই আমি সম্ভবত এটি প্রকাশের আগে সংহত করব না। তবে আপনি যে তথ্য সরবরাহ করেছেন তা তা করা আরও সহজ করে তুলবে, একবার আমি ম্যাগিট রিলিজের সাথে সম্পন্ন হয়ে গেলে এবং অন্যান্য জিনিসগুলিতে আবার ফোকাস করতে পারি।
তারসিউস

এখানে দিয়ে শুরু করতে কীভাবে তা with-editorMagit বাইরে: emacs.stackexchange.com/questions/27/... । এবং ম্যাজিট ইস্যু যা আমাকে এই প্রশ্ন জিজ্ঞাসা করতে পরিচালিত করে : github.com/magit/magit/issues/1638
তারসিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.