আমি বর্তমান ফাইলটির পুরো পথটি কীভাবে দেখতে পারি?


123

আমি যখন ভিমে কোনও ফাইল সম্পাদনা করছি, তখন বর্তমান ফাইলটির পথ দেখার জন্য কোন আদেশ আছে? কখনও কখনও এটি খুব কার্যকর যদি কোনও প্রকল্পে একই নামের একাধিক ফাইল থাকে।

উত্তর:


142

আপনি টিপতে পারেন {count}Ctrl-G:

{count}CTRL-G       Like CTRL-G, but prints the current file name with
                    full path.  If the count is higher than 1 the current
                    buffer number is also given.

+ 1এরপরে টিপুন বর্তমান ফাইলের পুরো পথ দেখায়। যদি 1 এর বেশি হয় তবে বাফারের নামটিও প্রদর্শিত হবে।CtrlG{count}

(কেবলমাত্র Ctrl+ Gটিপুন ভিমের বর্তমান কার্যকরী ডিরেক্টরিগুলির সাথে সম্পর্কিত পথ দেখায়, যেমন মন্তব্যে জ্যাস্পার নির্দেশ করেছেন))

.vimrcস্থিতি রেখায় সম্পূর্ণ পথ যোগ করতে আপনি নীচের কমান্ডটি ব্যবহার করতে পারেন , তাই এটি সর্বদা দৃশ্যমান:

set statusline+=%F

4
আরও কি Ctrl+G'ভিমের সিডব্লিউডির তুলনায় পাথের মতো নয় '?
জ্যাস্পার

@ য্যাস্পার ভাল ধরা! উত্তর আপডেট করেছেন।
থিমেরা

4
এটি C-gডিফল্ট বলে মনে হয় 0C-gএবং এটি ছাড়াও বাফার সূচক সংখ্যা (1 থেকে শুরু করে) 2C-gদেখায় ।

আমি আপনার উত্তর upvote 100th হতে পেরে খুব খুশি! এই জন্য ধন্যবাদ 1C-g!
ভল্ট

52

রেজিস্টারটিতে %বর্তমান ফাইলটির নাম রয়েছে।

নিম্নলিখিত তথ্য প্রদর্শিত তথ্য প্রদর্শন করতে প্রবেশ করানো যেতে পারে:

:echo @%                |" directory/name of file
:echo expand('%:t')     |" name of file ('tail')
:echo expand('%:p')     |" full path
:echo expand('%:p:h')   |" directory containing file ('head')

যা যা চাওয়া হয়েছিল তা হ'ল বর্তমান ফাইলটির নাম প্রদর্শন করা, টাইপ :f/ :lsবা টিপুন Ctrl- g( 1তারপরে পুরো পাথ প্রেসের জন্য Ctrl- g)।

সন্নিবেশ মোডে, টাইপ করুন Ctrl- rতারপরে %বর্তমান ফাইলটির নাম সন্নিবেশ করতে।

নীচের কমান্ডগুলি বাফারে বর্তমান এবং বিকল্প ফাইলগুলির পুরো পথ নিয়ে লাইনগুলি সন্নিবেশ করায়:

:put =expand('%:p')
:put =expand('#:p')

উত্স: উইম উইকিয়ায় বর্তমান ফাইলটির নাম পান

সম্পর্কিত:


2
এটি লক্ষণীয় যে আপনিও যখন সন্নিবেশ মোডে প্রবেশ করানোর =expand...পরে এই এক্সপ্রেশন ব্যবহার করতে পারেন Ctrl-R
ড্যাশ-টম-ব্যাং

22

আপনি :!ls %:pবর্তমান ফাইলটির পুরো পথটি পেতে ব্যবহার করতে পারেন ।

প্রাক্তন প্রসঙ্গের উপর নির্ভর করে %হয় ফাইলের বিষয়বস্তু বা ফাইলের নামের অর্থ হবে। শেলিংয়ের সময়, এটি বর্তমান ডিরেক্টরিতে আপেক্ষিক ফাইলের পথটি উপস্থাপন করে। ' %:p' কমান্ডটি পুরো পথের ফাইল নাম সংশোধককে যুক্ত করবে %

আরও কয়েকটি আকর্ষণীয় ফাইল নাম সংশোধক রয়েছে যেমন:

  • :~: হোম ডিরেক্টরি সম্পর্কিত ফাইল পাথ পান (এটি কোনও কারণে আমার পক্ষে কাজ করে না)
  • :.: বর্তমান ডিরেক্টরি ( %ডিফল্ট) এর সাথে সম্পর্কিত ফাইলের পাথ পান
  • :r: ফাইলের নাম মূল। এক্সটেনশন ছাড়াই ফাইলটির নাম।
  • :e: ফাইলের এক্সটেনশন।
  • :h: বিভক্ত /এবং বাম অর্ধেক ফিরে (অর্থাত্ যদি আমি কোনও পথে কোনও ফাইল সম্পাদনা করি /tmp/test.txtএবং রান চালায় %:p:hতবে ফিরে আসবে/tmp
  • :t: বিভক্ত করুন /এবং ডান অর্ধেকটি ফেরান (অর্থ্যাৎ যদি আমি কোনও পথে কোনও ফাইল সম্পাদনা করি /tmp/test.txtএবং চালানো হয় %:p:tতবে ফিরে আসবে)text.txt

আমি মনে করি আপনি%% বোঝাতে চেয়েছিলেন: p: t text.txt ফিরিয়ে দেবে
জন ও'ম।

@ JohnO'M। হ্যাঁ, এটা ঠিক ধন্যবাদ: ডি। সংশোধন করা হয়েছে।
চার্লসএল

7

যার সাহায্যে বর্তমান ওয়ার্কিং ডিরেক্টরিটি দেখতে পাবেন :pwd। অবশ্যই এটি কেবল ডিরেক্টরি, এবং ফাইল নাম নয়। কার্যকরী ডিরেক্টরি এবং ফাইলের নাম পেতে, আমরা বিশেষ রেজিস্টার ব্যবহার করতে পারি %, এতে বর্তমান ফাইল সম্পর্কে তথ্য রয়েছে।

আপনি যদি ব্যবহার করেন তবে আপনি :echo @%বর্তমান ফাইলের ডিরেক্টরি এবং ফাইলের নাম পাবেন।
আপনি যদি ব্যবহার করেন তবে আপনি :echo expand('%:p')বর্তমান ফাইলটির পুরো পথ এবং ফাইলের নাম পাবেন। এটি চার্লসএল উত্তরের সাথে খুব মিল ।

আমি এই এক স্মরণ কর, যদিও, কারণ যদি আপনি তেজ সাহায্য ব্যবহার :h expand, তাহলে এটি উল্লেখ করেছেন যে %এবং %:pএবং তাদের আত্মীয়।



3

সমাধান করা সিমলিংক সহ সমস্ত ফাইলের সম্পূর্ণ পথ দেখানোর জন্য, নিম্নলিখিতটি ব্যবহার করুন।

:echo resolve(expand('%:p'))

3

এখানে আরও উত্তম উত্তর রয়েছে তবে আপনি যদি (কোনও কারণে) ফাইলের পুরো পাথ পেতে শেলটি ব্যবহার করতে চেয়েছিলেন (আপনি যদি শেলটি দিয়ে ফাইলটিতে অন্য কোনও ক্রিয়াকলাপ পরিচালনা করতে যাচ্ছেন তবে এটি আরও কার্যকর), ইউনিক্সের মতো সিস্টেমে আপনি চালাতে পারেন:

:!realpath %

বা:

:'<,'>!realpath %

বর্তমান নির্বাচনের মাধ্যমে নথিতে পাথ সন্নিবেশ করানো।

নিবন্ধটিতে %সর্বদা ফাইলের নাম থাকে। একটি রিয়েলওয়ার্ল্ড উদাহরণ হতে পারে আপনি যদি কোনও কনফিগার ফাইল ফাইল সম্পাদনা করেন তবে লেখার অনুমতি না থাকলে (এবং ভিমকে মূল হিসাবে চালাতে চান না) আপনি ফাইলটি সম্পাদনা করতে পারেন, তারপরে চালান:

:w ! sudo tee %

ফাইলটি সংরক্ষণ করতে (সেখানে একটি সামান্য বিট অফটপিক, তবে এটি %রেজিস্টার দিয়ে কী করা যায় তার একটি ভাল উদাহরণ )।


realpathপসিক্স নয়, তাই এটি করা সহজ হতে পারে:!echo "$PWD/%"
মুরু

একমত; ভাল কল.
স্যাম হোয়াইট

2

আপনার স্থিতি রেখাটি দেখার জন্য উপযুক্ত হতে হবে এবং এটিকে পথেও সেট করতে হবে। আমি আমার। / .Vimrc এ নীচের দুটি লাইন যুক্ত করে স্থায়ীভাবে করেছি

set laststatus=2
set statusline+=%F

আপনি যদি একবার এটি চালাতে চান। তারপরে যখন কোনও নথির টাইপ VI করান

:set laststatus=2       <ENTER>
:set statusline+=%F     <ENTER>

1
এটি একই প্রশ্নের উত্তর যা একই প্রশ্নে থমির তৈরি করেছিলেন
স্টাটক্স


1

আপনি শিরোনাম বারে যে ফাইলটি সম্পাদনা করছেন তার পুরো পথটি দেখাতে পারেন, যা আমার মতে ফাইলের পথটি দেখানোর সুবিধাজনক উপায়।

এটি করার জন্য, আপনাকে titleবিকল্পটি সেট করতে হবে এবং titlestring। বর্তমান আমি নিম্নলিখিত সেটিংস ব্যবহার করছি:

set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}

এটি ভিমের হোস্ট-নেম, তারপরে ফাইলটির সম্পূর্ণ পথ এবং ফাইলের শেষ পরিবর্তিত সময় প্রদর্শন করবে। একটি ডেমো জন্য নীচের চিত্র দেখুন

এখানে চিত্র বর্ণনা লিখুন

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