উত্তর:
আমি নিশ্চিত যে এটি করার অন্যান্য উপায় আছে ... তবে আপনি যে প্রধান কমান্ডটি চান তা হ'ল :r[ead]
যা কোনও আদেশের আউটপুট বাফারে প্রবেশ করিয়ে দেয়।
সুতরাং, কেবলমাত্র ফাইলের নাম সন্নিবেশ করতে:
:r! echo %
এবং পুরো পথটি অন্তর্ভুক্ত করতে:
:r! echo %:p
আরও তথ্যের জন্য:
:help read
:help filename-modifiers
বর্তমান ফাইলের নামটি "%
রেজিস্টারে রয়েছে, সুতরাং আপনি এটি সহ (সন্নিবেশ মোডের সাথে) সন্নিবেশ করতে পারেন <c-r>%
; পুরো পথটি withোকানো যেতে পারে <c-r>=expand("%:p")
। আপনি যদি এটি প্রায়শই ব্যবহার করেন তবে আপনি এটির ম্যাক্রো তৈরি করতে পারেন। আরও অনুরূপ কৌশল, দেখুন :h expand
এবং :h "=
।
<c-r>
উল্লেখ করে যে পরবর্তী অক্ষরটি একটি রেজিস্টার।
"%p
সাধারণ বা ভিজ্যুয়াল মোডেও করতে পারেন।
যেমন দেখা যায় :h registers
, "%
রেজিস্টারটিতে বর্তমান ফাইলের নাম রয়েছে। :pu[t]
কমান্ড পাঠ্যে একটি রেজিস্টার বিষয়বস্তু সন্নিবিষ্ট করে।
সুতরাং, প্রকৃত ফাইলের নাম সন্নিবেশ করতে আপনি কমান্ড মোডে এগুলির মধ্যে যে কোনওটি টাইপ করতে পারেন:
:put %
অথবা
"%p
পুরো পাথ সহ ফাইলের নাম সন্নিবেশ করতে, টাইপ করুন
:put=expand('%:p')
কমান্ড মোডে।
অধিক তথ্য:
:h pu[t]
টাইপ করে "rp
আপনি নিবন্ধের সামগ্রীগুলি পেস্ট করতে পারেন "r
।
:put "%:p"
আমার জন্য কাজ বলে মনে হচ্ছে না। এটি কেবল প্রসারিত () এর মতো: যেমন দিয়ে কাজ করে বলে মনে হচ্ছে :put =expand('%:p')
এটি <c-r>=expand('%:p')
দুর্ভাগ্যক্রমে তুলনায় খুব কম জটিল নয় ।
একটি সহজ উপায় চালানো হয়:
!!echo %
!!
কমান্ডের ফলাফল অনুসরণ করে বর্তমান লাইনটি প্রতিস্থাপন করছে।
%
কমান্ডে সম্পাদিত ফাইলের নাম দ্বারা প্রতিস্থাপন করা হয় যাতে এটি সম্পাদিত ফাইলটিতে কার্যকরভাবে নামটি প্রবেশ করান।
ফাইল নাম হ'ল আপনি যা vi (এম) কমান্ডে পাস করেছেন এবং এতে কোনও আপেক্ষিক বা পরম পথ থাকতে পারে। আপনি এটি স্ট্রিপ করতে চান এবং কেবল ফাইলের নাম ধরে রাখতে চান, চালান
!!basename %
আপনার যদি ঘন ঘন এটি করার প্রয়োজন হয় তবে http://vim.wikia.com/wiki/Insert_current_filename অনুসারে আপনি যা চান তার মূল অনুক্রম বাঁধাই কার্যকর হতে পারে
আপনি সন্নিবেশ মোডে থাকা অবস্থায় কার্সার অবস্থানে এক্সটেনশন ছাড়াই বর্তমান ফাইলের নাম সন্নিবেশ করান।
:inoremap \fn <C-R>=expand("%:t:r")<CR>
এক্সটেনশন ব্যবহার রাখতে:
:inoremap \fn <C-R>=expand("%:t")<CR>
ডিরেক্টরিটির পরম পাথ সন্নিবেশ করতে ফাইলটি ব্যবহৃত হচ্ছে:
:inoremap \fn <C-R>=expand("%:p:h")<CR>
ডিরেক্টরিটির আপেক্ষিক পাথ সন্নিবেশ করতে ফাইলটি ব্যবহৃত হচ্ছে:
:inoremap \fn <C-R>=expand("%:h")<CR>
উপরের সমস্তগুলি সরাসরি vim
অধিবেশনের জন্য কাজ করে বা আপনি এটিতে রাখতে পারেন .vimrc
(যেখানে লাইনের শীর্ষস্থানীয় কোলন alচ্ছিক)।
আমি বর্তমান পজিশনে বর্তমান ফাইলের নাম (পাথ বা এক্সটেনশন ছাড়াই) সন্নিবেশ করার একটি সহজ উপায় গুগল করছিলাম (কোনও নতুন লাইন নেই, বর্তমান লাইন প্রতিস্থাপন করা হবে না)। সুতরাং পূর্ববর্তী উত্তরগুলি এবং এই লিঙ্কটির সংমিশ্রণ , এটিই আমি খুঁজছিলাম।
ইন সন্নিবেশ মোড:
<C-R>=expand("%:t:r")
তারপরে পরবর্তী সময় (ইতিমধ্যে ইতিহাসে আদেশটি সহ):
<C-R>=<UP>
<c-r>
রেডো কমান্ড হিসাবে ম্যাপ করা হচ্ছে না ?