কী চাপলে কীভাবে কোনও ম্যাপিং পুনরাবৃত্তি করবেন


11

.vimrcবিভক্ত উইন্ডোগুলিকে সহজেই আকার পরিবর্তন করতে আমার কিছু সাধারণ ম্যাপিং রয়েছে:

noremap <Leader><UP>    <C-w>+
noremap <Leader><DOWN>  <C-w>-

এটি বেশ সূক্ষ্মভাবে কাজ করে তবে উদাহরণস্বরূপ, যখন আমি 10 লাইনের উইন্ডোটির আকার পরিবর্তন করতে চাই তখন আমাকে Leader+ UP10 বার টিপুন এবং ছেড়ে দিতে হবে ।

কীগুলি টিপানোর সময় আমি কীভাবে এই ম্যাপিংটির পুনরাবৃত্তি করতে পারি? আমি যা চাই তা হ'ল আমি যখন Leader+ UPটিপব তখন ম্যাপিংটি একবার প্রয়োগ করা হবে তারপরে স্বল্প সময়ের পরে এটি আবার একবার প্রয়োগ করা হবে এবং কীগুলি ধরে রাখার সময়।

দ্রষ্টব্য: আমি জানি যে <C-w>+একটি গণনার সাথে উপসর্গ করা সম্ভব এবং আমি ম্যাপিংয়ে এটি হার্ডকোড করতে পারি বা ম্যাপিংটি ব্যবহার করার আগে একটি গণনা ইনপুট করতে পারি তবে আমি এটি করতে চাই না।

নোট 2: আমি এটিও জানি যে উইন্ডোজের আকার পরিবর্তন করতে একটি জনপ্রিয় ম্যাপিং হ'ল ব্যবহার করা +এবং -কীগুলি যা কয়েকবার চাপতে সহজ তবে আমি কীগুলি সেগুলি করতে চাই না।

উত্তর:


14

আপনি একটি ... ভিম সাবমোড প্রবেশ করার চেষ্টা করতে পারেন ! আপনার ক্ষেত্রে, এই জাতীয় কিছু:

call submode#enter_with('grow/shrink', 'n', '', '<leader><up>', '<C-w>+')
call submode#enter_with('grow/shrink', 'n', '', '<leader><down>', '<C-w>-')
call submode#map('grow/shrink', 'n', '', '<down>', '<C-w>-')
call submode#map('grow/shrink', 'n', '', '<up>', '<C-w>+')

এর অর্থ, আপনি সাবমোডটি প্রবেশ দিয়ে প্রবেশ করুন Leader-Upবা Leader-Down(যা উইন্ডোটি একবারে প্রসারিত / সঙ্কুচিত করবে) এবং তারপরে - আপনাকে সাবমোড থেকে প্রস্থান না হওয়া অবধি কেবল উইন্ডোটি চাপতে Upবা Downবাড়াতে / সঙ্কুচিত করতে হবে।

সময়সীমা সম্পর্কিত সমস্যাগুলির জন্য সহায়তাটি দেখুন তবে এটি অক্ষম করতে:

"disable submode timeouts:
let g:submode_timeout = 0

... যার অর্থ আপনি এই সাবমোডে অনির্দিষ্টকাল অবধি থাকবেন, যতক্ষণ না আপনি Upবা অন্য কোনও কী টিপেন না Downবা যতক্ষণ না আপনি আঘাত করেন Esc

আন্ড, পরবর্তী পরামর্শ টিপস আমি সুপারিশ করব:

" don't consume submode-leaving key
let g:submode_keep_leaving_key = 1

... যা আপনাকে আলাদা কী টিপলে সরাসরি আপনার পরবর্তী কমান্ডগুলিতে সরে যেতে দেয়। উদাহরণস্বরূপ, টিপে :উভয় submode ছাড়বে এবং কমান্ড লাইন খুলুন।


আমি আপনাকে সমাধান দেওয়ার চেষ্টা করেছি কিন্তু এটি কার্যকর হবে বলে মনে হচ্ছে না: যখন আমি <kbd> লিডার </ কেবিডি> + <কেবিডি> ইউপ </ কেবিডি> তে আঘাত করি তখন আমার কাছে বার্তাটি রয়েছে --submode: grow/shrink --এবং উইন্ডোটি একটি লাইন দ্বারা পরিবর্তন করা হয়েছে তবে কমান্ডটি আইসন নয় ' টি পুনরাবৃত্তি। আমি এটি 4 g:submode_keep_leaving_keyএবং g:submode_timeout1 বা 1 এর মিশ্রণ দিয়ে চেষ্টা করেছি আমি নিশ্চিত না যে আমি কিছু ভুল করেছি কি না। আমি সাধারণত টার্মিনালে ভিএম ব্যবহার করি তবে আপাতত আমি কেবল উইন্ডোতে জিভিম দিয়ে পরীক্ষা করতে পারি তবে আমি নিশ্চিত নই যে এটি কিছু পরিবর্তন করে।
স্ট্যাটক্স

2
কমান্ডটি স্বয়ংক্রিয়ভাবে পুনরাবৃত্তি করা হয়নি, আপনাকে এখনও যতবার প্রয়োজন ততবার আঘাত করতে হবে Upবা Downনিজেকে চাপতে হবে (তবে Leaderপ্রথমে চাপ না দিয়ে )
ভ্যানলাসার

ওহ আমি কোডটি এখন আরও ভাল করে বুঝতে পারি! এটি পুরোপুরি ধন্যবাদ কাজ করে!
স্ট্যাটক্স

2
নিখুঁত উত্তর এবং আশ্চর্যজনক প্লাগইন! (দ্রষ্টব্য: আপনার উপরের কমান্ডগুলি যুক্ত করার আগে আপনাকে ভিআইএম-সাবমোড প্লাগইন ইনস্টল করতে হবে ~/.vimrc))
ওয়েবেল

1

সঙ্গে winresizer , আঘাত Ctrl- eএবং দূরে মাপ পরিবর্তন!

আপনি নিয়মিত এইচজেকিএল কী (এবং সম্ভবত তীর কীগুলি) ব্যবহার করবেন।

আপনি পুনরায় আকারটি "গ্রহণ" করতে বা এটি "বাতিল" করতে পারেন।

এছাড়াও একটি মুভ-মোড রয়েছে যেখানে আপনি উইন্ডোজের চারপাশে অদলবদল করেন এবং যেখানে সক্রিয় উইন্ডোটি স্যুইচ করেন সেখানে একটি ফোকাস-মোড।

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