আমি নিয়মিতভাবে দুটি ভিন্ন কীবোর্ড লেআউট ( প্রোগ্রামারস-ডিভোরাক এবং তুর্কি-এফ ) ব্যবহার করার ক্ষেত্রে কিছুটা অস্বাভাবিক অবস্থানে আছি । এই বিন্যাসগুলি একে অপরের থেকে একেবারে পৃথক এবং আমি কেবলমাত্র পেশির স্মৃতিগুলির এক সেট দিয়ে ভিমে দক্ষ হতে সক্ষম। আমি ডিভোরাক লেআউটে ভিএম কমান্ডের সাথে বেশ দক্ষ, তবে আমার কীবোর্ড যদি তুর্কি-এফ লেআউটে থাকে তবে এটি ব্যবহার করা প্রায় অসম্ভব। দুর্ভাগ্যক্রমে আমি নিয়মিত ইংরেজি এবং তুর্কি এবং এমনকি মিশ্র ভাষায় ফাইলগুলি সম্পাদনা করি। আমার দক্ষতাটি এমন যে আমি এটির সাথে সম্পর্কিত কীবোর্ড লেআউটে উভয় ভাষা টাইপ করতে পারি, তবে আমার মস্তিষ্ক সেগুলি ক্রস-ওয়্যার করতে অস্বীকার করে এবং ডভোরাক বিন্যাস বা তদ্বিপরীত থেকে তুর্কি ভাষায় একটি শব্দের কয়েকটি অক্ষরও টাইপ করতে অস্বীকার করে।
এক্সর্গে লেআউট পরিবর্তন করার জন্য আমার কাছে দ্বি-কী-স্যালুট বাইন্ডিং রয়েছে তবে মিশ্র ভাষার ফাইলগুলি সম্পাদনা করার সময় এমনকি এটি আমাকে ভিমে একটি বিশ্রী কর্মপ্রবাহ সহ ছেড়ে দেয়:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
আমি এটির মতো কিছুতে এটি সংক্ষিপ্ত করতে সক্ষম হতে চাই:
<vim commands…><leader>i…content…<escape><vim commands…>
... যেমন সিস্টেম কীবোর্ড বিন্যাস পরিবর্তন না করে তুর্কি বিন্যাস অনুকরণ করতে <leader>iএকগুচ্ছ :imapমান নির্ধারণ করে । একই সময়ে, iসন্নিবেশ মোডে পরিবর্তন করা হবে তবে অতিরিক্ত :imapমান ছাড়াই without মানগুলি নিজেরাই সহজ, আমার বর্ণমালার ম্যাপিংগুলির দরকার এমন কিছু:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
প্রশ্ন হচ্ছে, কিভাবে সেটআপ দুই সন্নিবেশ মোড, এক স্বাভাবিক সন্নিবেশ মোড এবং মোড সন্নিবেশ এক ছদ্ম যে ম্যাপিং একটি গুচ্ছ ছাড়া অভিন্ন, এবং আমি সঙ্গে এই মোড কিভাবে আরম্ভ করতে পারবেন <leader>i, <leader>aইত্যাদি?
:imapযে এটি এমনকি একটি দূরবর্তী ssh অধিবেশন বা $DISPLAYঅন্যথায় সেট করা না থাকলেও কাজ করবে ।
InsertEnterএবংInsertLeaveঅটোকিম্ড রয়েছে যা আপনি স্বয়ংক্রিয়ভাবে বিন্যাসগুলি স্যুইচ করতে ব্যবহার করতে পারেন। বিশেষত,InsertLeaveআপনি এটি পরীক্ষা করতে পারবেন এটি তুর্কি কিনা, যদি হয় তবে ডিভোরাক এ স্যুইচ করুন, একটি পতাকা সেট করুন এবং আপনি যখন সন্নিবেশ সন্নিবেশ করেন তখন আবার তুর্কিতে স্যুইচ করুন যদি আপনি শেষবার সন্নিবেশ মোডে রেখেছিলেন এমন ঘটনা যদি ঘটেছিল।