Zsh প্রম্পটে পথ ছোট করুন


18

Bashহয়েছে PROMPT_DIRTRIMবিকল্প, যেমন যখন আমি সেট PROMPT_DIRTRIM=3, তারপর মত একটি দীর্ঘ পথ:

user@computer: /this/is/some/silly/path

পরিবর্তে হিসাবে প্রদর্শিত হবে:

user@computer: .../some/silly/path

একটি অনুরূপ বিকল্প জন্য বিদ্যমান zsh?

উত্তর:


22

একটি অনুরূপ প্রভাব পেতে bash, এটি অন্তর্ভুক্ত সহ ..., চেষ্টা করুন:

%(4~|.../%3~|%~)

এই পরীক্ষাগুলি, যদি পথটি কমপক্ষে 4 টি উপাদান দীর্ঘ হয় ( %(4~|true|false)) এবং সত্য হয় তবে শেষ 3 টি উপাদান ( .../%3~) সহ কিছু বিন্দু মুদ্রণ করে , অন্যথায় পুরো পথটি মুদ্রিত হয় %~


আমি লক্ষ্য করেছি যে bashহোম ডিরেক্টরিতে পথগুলি পৃথকভাবে ছোট করা হয়েছে বলে মনে হচ্ছে উদাহরণস্বরূপ:

~/.../some/long/path

অনুরূপ প্রভাবের জন্য, আপনি ব্যবহার করতে পারেন:

%(5~|%-1~/…/%3~|%4~)

এই পথটি 5 টি উপাদান এর পরে দীর্ঘতর কিনা তা পরীক্ষা করে এবং সেই ক্ষেত্রে প্রথম উপাদান ( %-1~), কিছু বিন্দু ( /…/) এবং শেষ 3 উপাদান মুদ্রণ করে । এটি ঠিক যেমন পাথের মতো নয়, যা আপনার হোম ডিরেক্টরিতে নেই, শুরুতে প্রথম উপাদানও থাকবে, যখন bashকেবল সেই ক্ষেত্রে বিন্দুগুলি মুদ্রণ করবে। সুতরাং

/this/…/some/silly/path

পরিবর্তে

.../some/silly/path

তবে এটি অগত্যা কোনও খারাপ জিনিস নয়।


1
আমি প্রথম সংস্করণ ভাল, কিন্তু নোট মতো এটা দেখায় ~/a/bযেমন .../a/bপরিবর্তে ~/a/b। এটি ঠিক করতে, আপনি ব্যবহার করতে পারেন %(5~|…/%3~|%~)
মোমার

Zsh- এ নতুন যারা (আমার মত), আপনি এই সিনট্যাক্সটি আপনার PROMPTপরিবেশের পরিবর্তনশীলগুলির সাথে ব্যবহার করতে চান .zprofile, যেমন:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
রায়ান এইচ।

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

@ আদাফন তথ্যের জন্য ধন্যবাদ। আমি ঠিক করব! :)
রায়ান এইচ।

8

এখানে প্রদত্ত অন্যান্য উত্তরগুলির পাশাপাশি, আপনি %<প্রদত্ত সংখ্যক অক্ষরের পথ কেটে ফেলতেও ব্যবহার করতে পারেন । আমি এটি ব্যবহার করার পক্ষে পছন্দ করি %<n>dকারণ ব্যক্তিগত পথের উপাদানগুলি সম্ভবত তাদের মধ্যে দীর্ঘ দীর্ঘ হতে পারে। %<ফলন ব্যবহার করে আরও বেশি সম্ভাব্য সর্বোচ্চ প্রম্পট দৈর্ঘ্য।

উদাহরণস্বরূপ, টিলডে সম্প্রসারণ ( %~) থেকে 15 টি অক্ষরের সাথে বাম-কাটা পথকে মুছে ফেলা অক্ষরগুলি প্রতিস্থাপন করে .., আপনি এরকম কিছু করতে পারেন:

PROMPT='%n@%m:%15<..<%~%<<%# '

এটি পৃষ্ঠার ঠিক শেষে, প্রম্পট প্রসারণের অধীনে Zsh ম্যানুয়ালটিতে নথিভুক্ত করা হয়েছে ।


4

আপনি %3d প্রম্পট সম্প্রসারণ ব্যবহার করতে পারেন :

/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $

সাধারণ ফর্মটি হ'ল %d, যদি কোনও ধনাত্মক পূর্ণসংখ্যার dঅনুসরণটি চলমান পথটি দেখানোর জন্য অনুবর্তী উপাদানগুলি নির্দিষ্ট করে, শূন্য মানে পুরো পথটি দেখায়, negativeণাত্মক পূর্ণসংখ্যার অর্থ হল অগ্রণী পথ:

.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $

3

Http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html বা দেখুনman zshmisc

%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show

%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.

সুতরাং অনুরূপ কিছু পেতে PROMPT_DIRTRIM=3, আপনি ব্যবহার করতে পারেন %3dবা %3~, যেমন

% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d% 

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