* এবং + নিবন্ধগুলির জন্য কাস্টম কমান্ডগুলি সংজ্ঞায়িত করুন


9

যদি আমি এই xterm_clipboardবৈশিষ্ট্যটি সহ একটি ভিমের বিল্ড ব্যবহার করি তবে রেজিস্টারের মাধ্যমে সিস্টেম ক্লিপবোর্ড সামগ্রী উপলব্ধ +

যদি আমি যে বিল্ডটি ব্যবহার করছি তা যদি এই বৈশিষ্ট্যটি না থাকে তবে আমি কি "+রেজিস্টারটিতে সিস্টেম ক্লিপবোর্ড ( xsel -boএবং xsel -biএকইভাবে xclip) পুনরুদ্ধার করতে এবং সেট করতে আমার কাস্টম প্রোগ্রামগুলিতে কল করতে পারি ? একইভাবে "*কল xsel -poএবং xsel -pi

বিন্দুটি হ'ল "+pবৈশিষ্ট্যটি উপলব্ধ কিনা তা চিন্তা না করেই এমন কিছু টাইপ করতে সক্ষম হবেন । টাইপিং :r !xsel -b<Enter>নয় আমি যা খুঁজছেন করছি: আমি কাজ একই কীস্ট্রোকগুলি চান, এবং আমি পেস্ট কি "সত্য" রেজিস্টার জন্য উপলব্ধ অনুসরণ করতে রূপগুলো চান ( P, gp, ...)।

বোনাস: আমি অন্যান্য নিবন্ধের নামের জন্য কাস্টম কমান্ড সংজ্ঞায়িত করতে পারি?

উত্তর:


7

কয়েকটি <expr>ম্যাপিং এখানে কাজটি করতে সক্ষম হওয়া উচিত। বেসিক কাঠামো হবে

function! ClipboardOrXclip(command, register)
    if a:register !~ '[+*]' || has('xterm_clipboard') || has('gui_running')
        " Just return the original command if the clipboard is accessible
        " or it's not a register that should be handled by xsel
        return a:command
    endif
    if a:register == '+'
        return "<Esc>:r !xsel -bo<CR>"
    else
        return "<Esc>:r !xsel -po<CR>"
    endif
endfunction

nnoremap <silent> <expr> p ClipboardOrXclip('p', v:register)

ফাংশনের সব বৈচিত্র হ্যান্ডেল করতে প্রসারিত করা করতে হবে p, P, gp, ইত্যাদি কিন্তু এই একটি ভালো শুরু হওয়া উচিত।


এটি সঠিক পথে রয়েছে বলে মনে হচ্ছে তবে এটি কাজ করছে না। একটি প্লেইন p(পূর্ববর্তী "ও নিবন্ধভুক্ত নাম ব্যতীত) "pস্থিতি রেখায় প্রদর্শিত হওয়া ব্যতীত অন্য কিছু করে না । "apসমান a, "bpবিপস,… আমি যুক্তি পাই না। "+তত্ক্ষণাত বীপস, এমনকি আমি বলতে চাই না যে আমি বলতে চাইছি +বা *নিবন্ধের নাম হিসাবে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
এই মৌলিক সমস্যাগুলির সমাধান হয়েছে বলে ধরে নিয়ে, কমান্ডগুলির একটি বিস্তৃত তালিকা কি আমার ওভাররাইডের প্রয়োজন হবে? সেটটি দেখতে ভয়ঙ্কর দেখাচ্ছে, বিশেষত যদি আমি পাশাপাশি ইয়ঙ্কিং সমর্থন করতে চাই।
গিলস 'অশুভ হওয়া বন্ধ করুন'

@ গিলস নন - + / * রেজিস্টারগুলির সাথে আচরণটি ঠিক করার জন্য আপডেট করেছেন। "+আপনার ভিমে থাকার সাথে সমস্যাটি -xterm_clipboardআরও বেশি কঠিন কারণ এটি কখনই এই ফাংশনে আসে না। একটি অবৈধ রেজিস্টার নির্দিষ্ট করে ( +) আদেশটি বাতিল করে। তাই হয়, এটা দেখে মনে হচ্ছে আচরণ আসলে তাই বিপর্যস্ত করা ম্যাপ হয়েছে "+বা "*এবং তারপর কমান্ড ব্যবহারকারী দ্বারা নির্দিষ্ট হ্যান্ডেল ...
jamessan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.