ভিমে সংক্ষেপে বিভক্ত করার আরও ভাল উপায়


1

আমি চাইছিলাম একটি দ্রুত পৃষ্ঠা বিভাজকের মতো কাজ করার জন্য একটি সাধারণ সংক্ষেপণ

টাইপিং:

'>>>'

হয়ে:

'==============='

2 অন্যান্য প্রয়োজনীয়তা: 1) আমি বিভাজকের পরে পাঠ্য টাইপ করতে সক্ষম হতে সিরিয়াল সংক্ষিপ্ত বিবরণ (এক সারি একাধিক) করতে সক্ষম হতে চাই এবং তার পরে অন্য বিভাজক যুক্ত করতে সক্ষম হব। সুতরাং একটি চূড়ান্ত বিভাজক এর মত দেখতে পারে:

============================= পাঠ্য শিরোনাম =================== ============

আমি নিম্নলিখিত লাইনের চেষ্টা করেছি:

iabbr <silent> >>> ===============<c-r>=Eatchar('\m\s\<bar>/')<cr>

... তবে পূর্ববর্তী অক্ষরগুলির শ্রেণীর সাথে জড়িত সূক্ষ্মতার কারণে এটি উপরের প্রয়োজনীয়তাগুলি সম্পাদন করতে পারে না (দেখুন: h ফুল-আইডি ইত্যাদি)। আমি নিম্নলিখিতটি দিয়ে শেষ করেছি:

inoremap >>> ===============<c-r>=Eatchar('\m\s\<bar>/')<cr>

এটি কাজ করে, তবে আমার অনুভূতিটি একটি পুনর্নির্মাণ ছিল অতিমাত্রায় কাটানো হতে পারে যখন আমি সত্যিই চাই সমস্ত একটি সরল স্ট্রিং প্রতিস্থাপন। এই কাজ করতে একটি ভাল উপায় আছে কি?

উত্তর:


0

এটির সাথে মোকাবিলা করার সহজতম উপায়টি সম্ভবত কোনও ব্যবহারকারী সংজ্ঞায়িত ফাংশন কল করা। আমি ধারণার নীচের প্রমাণ নিয়ে এসেছি। যদিও বেশ কয়েকটি ঘাটতি:

আপনি যদি ম্যাপিংয়ের পরিবর্তে সংক্ষেপণ ব্যবহার করেন তবে সংক্ষিপ্তসারের পরে প্রবেশ করা অক্ষরটি যা ট্রিগার করে তা input()কল দ্বারা ব্যবহারকারীর কাছ থেকে নেওয়া পাঠ্যের অংশ হিসাবে অন্তর্ভুক্ত করা হবে , তাই আমি একটি ম্যাপিং ব্যবহার করেছি।

ম্যাপিংয়ের ক্ষেত্রে সমস্যাটি হ'ল আপনি যখন টাইপ করেন> এটি কোনও ফাইল টাইপ না করা অবধি ফাইলটিতে প্রদর্শিত হবে না যা আপনি ভিমকে জানান যে আপনি ম্যাপিংটি ট্রিগার করার চেষ্টা করছেন না (বা আপনি ম্যাপিং সনাক্তকরণের জন্য সময়ের জন্য অপেক্ষা করতে পারেন) আউট)।

imap <expr> >>> MyHeader('=')

function! MyHeader(fillchar)
    let l:text = input("Header Text: ")
    let l:len = ((&tw ? &tw : 79) - len(text) - 2) / 2
    let l:fill = repeat(a:fillchar, l:len)
    return l:fill . ' ' . l:text . ' ' . l:fill
endfunction

যেহেতু এটি ধারণার প্রমাণ মাত্র তাই আমি এটি নিখুঁত করার চেষ্টা করিনি। উদাহরণস্বরূপ, শিরোনামের পাঠ্যের অক্ষরের সংখ্যা বা textwidthএকটি বিজোড় সংখ্যা হলে শিরোনামের প্রস্থটি "এক এক করে বন্ধ" হতে পারে । এটি ঠিক করতে এবং আপনার পছন্দ মতো অন্য কোনও সংশোধনগুলি যুক্ত করার জন্য আমি এটি আপনার কাছে রেখে দেব।


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