@ মুরু যেমন উল্লেখ করেছেন, যে ডিরেক্টরি থেকে পথ এবং ফাইলের নাম সম্পূর্ণ করতে হবে সেটি কনফিগার করার কোনও বিকল্প নেই। এটি সর্বদা উইন্ডোটির কার্যকরী ডিরেক্টরি ব্যবহার করে।
এটিতে সহায়তার জন্য আমি কয়েকটি ফাংশন এবং ম্যাপিং লিখেছি। পর্দার আড়ালে, তারা :lcd
অস্থায়ীভাবে স্থানীয় ওয়ার্কিং ডিরেক্টরি (ব্যবহার করে ) পরিবর্তন করে , তারপরে সম্পন্ন হওয়ার পরে পূর্ববর্তী কার্য ডিরেক্টরিটি পুনরুদ্ধার করে।
হাতি
এমনকি আমার অজানা কারণে, আমি এই মাইক্রো-প্লাগইন এলিফ্যান্ট বলেছি ।
এখানে কোডটি ( গিটহাবের আমার ভিম কনফিগারেশন থেকে অনুলিপি করা হয়েছে ):
let g:elephant_map = {
\ 'f': function('elephant#current_file'),
\ 'p': function('elephant#vcs_project')
\ }
function! elephant#prompt(base)
let l:Fcn = get(g:elephant_map, a:base, function('elephant#identity'))
let l:basedir = l:Fcn()
execute 'lcd' l:basedir
let l:file = fnamemodify(input(l:basedir.'/', '', 'file'), ':p')
lcd -
return fnamemodify(l:file, ':.')
endfunction
function! s:elephant_init()
let l:base = getchar()
return elephant#prompt(nr2char(l:base))
endfunction
function! elephant#identity()
return '.'
endfunction
function! elephant#vcs_project()
return fnamemodify(finddir('.git', '.;'), ':h')
endfunction
function! elephant#current_file()
return expand('%:h')
endfunction
inoremap <silent> <expr> <C-R><C-E> <SID>elephant_init()
cnoremap <silent> <C-R><C-E> <C-R>=<SID>elephant_init()<CR>
এটি কিভাবে ব্যবহার করতে
এই ম্যাপিংগুলি ব্যবহার করে 3 টি ধাপে ঘটে।
1. ম্যাপিং শুরু করুন
সন্নিবেশ মোড বা কমান্ড-লাইন মোডে, ম্যাপিংটি ব্যবহার করে অনুরোধ করুন <C-R><C-E>
।
2. একটি ডিরেক্টরি চয়ন করুন
আপনি কোন মূল ডিরেক্টরিটি থেকে সম্পূর্ণ করতে চান তা চয়ন করতে একটি একক অক্ষর টাইপ করুন। উপরের কোডটি দুটি ধরণের শিকড় সরবরাহ করে:
f
- বর্তমান ফাইল (বাফার) যে ডিরেক্টরিতে থাকে
p
- গিট প্রকল্পের বেস ডিরেক্টরি বর্তমান ফাইলের অন্তর্ভুক্ত
৩.পথ বা ফাইলের নাম লিখুন
সম্পূর্ণ ডিরেক্টরি উপলব্ধ হওয়ার সাথে সাথে আপনাকে নির্দিষ্ট ডিরেক্টরিটির সাথে সম্পর্কিত বা ফাইলের নাম লিখতে অনুরোধ করা হবে। Enter
শেষ হয়ে গেলে টিপুন ।
কিছু নোট
- এটি সন্নিবেশ মোডে ইনলাইন সম্পূর্ণতা প্রদান করে না
<C-X><C-F>
; পরিবর্তে, আপনি কমান্ড-লাইন প্রম্পটে (যেখানে :
কমান্ডগুলি যায়) তে পথ বা ফাইলের নাম লিখবেন । টিপানোর পরে Enter
, পাথটি বাফারে .োকানো হবে।
- কমান্ড-লাইন মোডেও এটি একই সত্য, যা আপনি আঘাত করতে গিয়ে কখনও কখনও বিভ্রান্ত হয়ে যেতে পারেন
Enter
এবং ভুলে যান যে আপনি যে Enter
টাইপটি টাইপ করছিলেন তা আপনাকে এখনও চাপতে হবে।
- অন্যান্য ডিরেক্টরি ফাংশন এগুলিতে যুক্ত করে নিবন্ধভুক্ত হতে পারে
g:elephant_map
।
- Pathোকানো পথটি হবে সম্পূর্ণ, পরম পথ। সেই আচরণটি পরিবর্তন করতে স্ক্রিপ্টটি টুইট করা যেতে পারে, তবে আমি এটির কাছে পাইনি।
path
)। এটি নির্ভর করে আপনার ভিএম-রুটারের জন্য কী ব্যবহার করা হয় তা নির্ভর করে। আপনি এটি থেকে কী চান তার উপর নির্ভর করে আমরা অন্যান্য প্লাগইন ব্যবহার করতে পারি। অন্যদিকে: আমি youcompleteme ব্যবহার করি, যা আপনি টাইপ করা শুরু করলে বর্তমান বাফার ডিরেক্টরি থেকে পাথ সম্পূর্ণ করে./
। দেখুন reddit.com/r/vim/comments/216jdd/...