আমি কীভাবে সিআরটিএল-ডাব্লু ছাড়া ভিমের মধ্যে বিভক্ত হয়ে কাজ করতে পারি?


24

আমার টার্মিনালটি আমাকে Ctrl+ টাইপ করতে দেয় না Wকারণ এটি টার্মিনাল ট্যাবটি বন্ধ করার জন্য একটি শর্টকাট।

আমি বিভাজন নিয়ে কাজ করতে পছন্দ করি তবে আমি ব্যবহার না করে এটি করার কোনও উপায় খুঁজে পাচ্ছি না C-W। এটি আমাকে ট্যাবগুলি ব্যবহার করতে বাধ্য করেছিল, কারণ আমি তাদের সাথে স্যুইচ করতে পারি gt, gTবা #gtযেখানে # একটি সংখ্যা রয়েছে, তবে আমি এটি বিভক্তির চেয়ে কম সুবিধাজনক বলে মনে করি কারণ আমি একবারে কেবল একটি ফাইলের সামগ্রী দেখতে পারি।

mouse=aআমার টার্মিনাল সেটিকে সমর্থন করে না বলেই আমি ব্যবহার করতে পারি না ।

Ctrl+ Wকম্বো উপলব্ধ না করে আমি কীভাবে ভিমে বিভক্ত হয়ে কাজ করতে পারি ?


1
ম্যাপিংগুলি ব্যবহার করুন wincmd উদাহরণস্বরূপ আপনি মানচিত্র করতে পারেন: :nmap wj :wincmd j<cr>এটি একইরূপে কাজ করে CTRL-W j(নীচে উইন্ডোতে যান)। :help wincmd
অ্যালেক্স ক্রোল

@ অ্যালেক্সক্রোল আপনি উত্তর হিসাবে পোস্ট করেন না কেন? :-)
মার্টিন টর্নয়েজ

1
@ কারপেটসমোকার আমার মনে হয় এই সমস্যাটির এটি সম্পূর্ণ কভার নয়। CTRL-W jকাউন্টারগুলির সাথে কাজ করে (বর্তমান থেকে নীচে এন-তম উইন্ডোতে যান) আমার সমাধানটি করে না।
অ্যালেক্স ক্রোল

2
আমি সাধারণত এ জাতীয় পরামর্শের প্রশংসা করি না, তবে আমি অন্য টার্মিনালটির সন্ধান করব। <C-W>বাজেয়াপ্ত করার জন্য একটি শর্টকাট (কেবল ভিমে অনেক জায়গায় নয়, বাশেও) খুব দরকারী। আমি কি কৌতূহল করব যে কী কী বাঁধাইগুলি টার্মিনাল দ্বারা গ্রাস করা হয় - <C-T>? খুব কমপক্ষে, আমি এগুলি টার্মিনালে কনফিগারযোগ্য কিনা তা অনুসন্ধান করব।
tommcdo

উত্তর:


23

আপনি কেবলমাত্র <C-w>অন্য সংমিশ্রণে পুনরায় তৈরি করতে পারেন , উদাহরণস্বরূপ:

:nnoremap <C-e> <C-w>

আপনি এখন ব্যবহার করতে পারেন <C-e>এবং এটি চাপলে যেমন কাজ করবে <C-w>

এটি ডিফল্ট <C-e>ম্যাপিং ওভাররাইট করবে (নীচে স্ক্রোল)। ভিম ইতিমধ্যে কীবোর্ডের প্রতিটি কী ব্যবহার করে এবং এটি প্রতিরোধের একমাত্র উপায় হ'ল লিডার কী ব্যবহার করে যা "উপসর্গ" এর মতো কাজ করে:

:nnoremap <Leader>w <C-w>

যদি আপনি রিমপ না করে থাকেন তবে আপনি <Leader>এখন \w(একে অপরের পরে) ব্যবহার করতে পারবেন । আমি আসলে এটি পছন্দ করি যেহেতু আমি সিটিআরএল + কী সংমিশ্রণ পছন্দ করি না।

দেখুন <নেতা> কি? এবং <লিডার> কী সেট করা আছে তা আমি কীভাবে জানতে পারি? এবং <লিডার> কে পুনরায় তৈরি করা সম্ভব?


আমার সমস্যা সমাধান করে আমার vimrc এ ম্যাপিং যুক্ত করেছে এবং কোনও সমস্যা ছাড়াই কিছুটা পরীক্ষা করা হয়েছে।
মাটোন 1

13

আমি আসলে + এর :wincmdচেয়ে বেশি বার ব্যবহার করি কারণ সংক্ষিপ্ত বিবরণ টাইপ করা আমার কাছে সহজ মনে হয় ।CtrlW:winc

উদাহরণস্বরূপ, সমতূল্য Ctrl+ + W Lহয় :winc l


7

আমি আমারে নিম্নলিখিত রিমপগুলি সেট আপ করেছি .vimrc:

nmap <C-h> <C-w>h
nmap <C-j> <C-w>j
nmap <C-k> <C-w>k
nmap <C-l> <C-w>l

এখন আমি Ctrl+hবাম উইন্ডোতে Ctrl+lস্থানান্তরিত করতে, ডানদিকের উইন্ডোতে সরানো ইত্যাদি ব্যবহার করতে পারি etc.


4
নোট করুন যে টার্মিনালে Ctrl + h ম্যাপিং সবসময় কাজ করে না, কারণ এটি প্রায়শই ব্যাকস্পেস কী। দেখুন এই উত্তর এবং এই প্রশ্নের
মার্টিন টর্নয়েজ

এছাড়াও, আপনি ব্যবহার করতে পারেন nnoremap <cr> <c-w>w, যেহেতু রিটার্ন কীটি সাধারণ মোডে বেশি ব্যবহৃত হয় না। তারপরে বিভক্ত হয়ে চক্র চালানো অনায়াস।
আশা করি

5

বিভাজনগুলি মোকাবেলায় আমি সাবমোড-প্লাগইন ব্যবহার করি যা আসলে বেশ সুবিধাজনক: এটি আপনাকে একটি নতুন মোড তৈরি করতে দেয় (যেমন "মোড" যেমন সাধারণ মোড, ভিজ্যুয়াল মোড, সন্নিবেশ মোড ইত্যাদি ...) আপনি নতুন কী বাইন্ডিংগুলি সংজ্ঞায়িত করেন where ।

এটির সাথে আপনাকে Ctrl+wআর ব্যবহার করতে হবে না এবং আপনি একটি নতুন মোডে থাকায় সমস্ত কীগুলি আবদ্ধ থাকতে পারে: "ড্যামন এর মতো আর কোনও সমস্যা নেই যা আমি একটি মূল সংমিশ্রণটি খুঁজে পাই না যা একটি চিহ্ন হিসাবে এবং ম্যাপ করা হয়নি isn't "

আপনি যে কোনও নিয়মিত প্লাগইন ম্যানেজারের সাহায্যে প্লাগইন ইনস্টল করতে পারেন এবং আপনাকে কিছু অনুপ্রেরণা দেওয়ার জন্য আমার কয়েকটি কনফিগারেশন এখানে রয়েছে:


আমি একটি নতুন মোড তৈরি করেছি WindowsModeযা আমি বলেছিলাম যাতে আমি আমার বিভাজনগুলি পরিচালনা করি:

call submode#enter_with('WindowsMode', 'n', '', '<Leader>k', ':echo "windows mode"<CR>')
call submode#leave_with('WindowsMode', 'n', '', '<Leader>')

এই লাইনগুলির অর্থ হল যে আমি মোডে প্রবেশ করি এবং এটি দিয়ে Leaderkআমি মোডটি থেকে প্রস্থান করি Leader: আমি যে Leaderkসমস্ত কীগুলি হিট করব তা হিট করার পরে :

  • যদি আমি এই মোডে তাদের জন্য কোনও ম্যাপিং সংজ্ঞায়িত না করি তবে কিছুই করবেন না
  • আমি এই মোডে তাদের মানচিত্র করার সিদ্ধান্ত নিয়েছি তা করুন (উত্তরটির বাকী অংশটি দেখুন)
  • আমি আঘাত করলে স্বাভাবিক মোডে ফিরে যান Leader

একবার আমি WindowsModeএই লাইনে চলে এসেছি hjkltheCtrl+whjkl

" Change of windows with hjkl
call submode#map('WindowsMode', 'n', '', 'j', '<C-w>j')
call submode#map('WindowsMode', 'n', '', 'k', '<C-w>k')
call submode#map('WindowsMode', 'n', '', 'h', '<C-w>h')
call submode#map('WindowsMode', 'n', '', 'l', '<C-w>l')

আমি জানালা বিভক্ত করতে এই লাইন ব্যবহার /এবং !:

" split windows with / and !
call submode#map('WindowsMode', 'n', '', '/', '<C-w>s')
call submode#map('WindowsMode', 'n', '', '!', '<C-w>v')

এবং qএকটি বিভাজন বন্ধ করুন:

call submode#map('WindowsMode', 'n', '', 'q', '<C-w>c')

এর সাথে বিভাজনগুলি সরান Ctrlhjkl:

call submode#map('WindowsMode', 'n', '', '<C-j>', '<C-w>J')
call submode#map('WindowsMode', 'n', '', '<C-k>', '<C-w>K')
call submode#map('WindowsMode', 'n', '', '<C-h>', '<C-w>H')
call submode#map('WindowsMode', 'n', '', '<C-l>', '<C-w>L')

ভিম-সাবমোড অনেক শক্তিশালী জিনিস করতে দেয়, আরও বিশদ জানতে ডকটি দেখুন।


সম্পাদনা করুন উইন্ডো সাবমোডের আরেকটি পদ্ধতির বর্ণনা এখানে দেওয়া আছে । আমি মনে করি লেখকের ব্যবহৃত পদ্ধতিটি প্রশ্নের উত্তরটির আরও কাছাকাছি: এখানে একটি নতুন মোড তৈরি করতে ব্যবহৃত হয় তবে <c-w>somethingসাবমোডে একই কীগুলি সহ সমস্ত ম্যাপিং পাওয়া যায়:

" Go through every letter
for key in ['a','b','c','d','e','f','g','h','i','j','k','l','m',
\           'n','o','p','q','r','s','t','u','v','w','x','y','z']
  " maps lowercase, uppercase and <C-key>
  call submode#map('window', 'n', '', key, '<C-w>' . key)
  call submode#map('window', 'n', '', toupper(key), '<C-w>' . toupper(key))
  call submode#map('window', 'n', '', '<C-' . key . '>', '<C-w>' . '<C-'.key . '>')
endfor

" Go through symbols. Sadly, '|', not supported in submode plugin.
for key in ['=','_','+','-','<','>']
  call submode#map('window', 'n', '', key, '<C-w>' . key)
endfor

এই ভাবে সব ম্যাপিং <c-w>lowerCaseKey, <c-w>upperCaseKey, <c-w><c-Key>এবং ম্যাপিং <c-w>=_+-<>সব উপসর্গ ছাড়া উইন্ডো মোড অ্যাক্সেসযোগ্য থাকে<c-w>

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