পরামিতি সহ ম্যাপিং তৈরি করা কি সম্ভব?


11

আমি এর মতো কয়েকটি ম্যাপিং তৈরি করেছি:

:nnoremap <buffer> <leader>xyzABC   :call SomeFunc('ABC')<CR>
:nnoremap <buffer> <leader>xyzDE    :call SomeFunc('DE')<CR>
:nnoremap <buffer> <leader>xyzFoo18 :call SomeFunc('Foo18')<CR>
:nnoremap <buffer> <leader>xyzBar22 :call SomeFunc('Bar22')<CR>

যা পছন্দসই হিসাবে কাজ করে।

আমি এখন একটি মানচিত্র-টেমপ্লেট তৈরি করার একটি সম্ভাবনার সন্ধান করছি যা আমাকে আমার ম্যাপিংয়ের সুস্পষ্ট অপ্রয়োজনীয় অংশগুলি সরিয়ে ফেলতে অনুমতি দেবে, এর মতো কিছু

:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>

যাতে আমি প্যারামিটার হিসাবে কোনও মান পাস করতে পারি SomeFunc

এমন কি কোনও সম্ভাবনা আছে?


7
আপনি ব্যবহার করতে পারেন input()বা getchar()। তবে প্যারামিটার লাগে এমন কোনও কিছুর জন্য ম্যাপিংয়ের পরিবর্তে কমান্ড ব্যবহার করা আরও স্বাভাবিক।
পিটার রিনকার

আমি পিটারের মন্তব্যের সাথে একমত; কমান্ডগুলি ম্যাপিংয়ের চেয়ে কাজের পক্ষে আরও উপযুক্ত।
রোমেনেল

উত্তর:


6

@ পিটার-রিংকলার যেমন বলেছেন, একটি আদেশ দিয়ে এটি করা সম্ভবত সহজ:

command! -nargs=* Xyz :call SomeFunc(<q-args>)

এটি করা সম্ভব করে (স্বাভাবিক মোডে)

:Xyz ABC

আমি সত্যিই পছন্দ করি না input()কারণ আপনি এই ধরণের জিনিসগুলি সহজেই পুনরাবৃত্তি করতে পারবেন না।


6

পিটার রিনকারের মন্তব্যে ধন্যবাদ, আমি উত্তরটি পেয়েছি:

:nnoremap <buffer> <leader> xyz :call SomeFunc(input('Param: '))<CR>

এখানে আরেকটি উদাহরণ রয়েছে: nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr> । ধারণাটি <leader>tn2ট্যাব 2 এ নেভিগেট করতে টাইপ করতে হবে
জশা

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