উইন্ডোটি নীচে বা উপরে, বাম বা ডানদিকে আছে কিনা তা জানা সম্ভব?


13

আমি জানিনা উইন্ডোজের অবস্থান যাচাই করার জন্য কোনও ফাংশন রয়েছে কিনা, আমার অর্থ এটি বর্তমানে নীচে বা উপরে, বামে বা ডানে বসে আছে ??

__________________________
|           |            |
|           |            |
|  left     |   right    |
|           |            |
|           |            |
|___________|____________|

__________________________
|                        |
|          top           |
|________________________|
|                        |
|         bottom         |
|_______________________ |

আপনি কি করতে চেষ্টা করছেন? (এক্সওয়াই সমস্যা)
এমএমন্টু

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

3
সহজভাবে ব্যবহার ctrl-W_Lকরবেন না কেন ? (অথবা ctrl-W_R)
Vitor থেকে

আমি এটি সুবিধাজনক টগল ফাংশন হিসাবে পেতে চাই, এটি স্বয়ংক্রিয়ভাবে বর্তমান লেআউটটি সনাক্ত করে আমার জন্য সঠিক রোটেশনটি করবে তার পরিবর্তে আমাকে এটি আমার মস্তিষ্কে ভাবতে হবে এবং ব্যবহারের জন্য সঠিক কমান্ডটি চয়ন করতে হবে। আমাকে যা করতে হবে তা হ'ল সর্বদা একই কী ম্যাপিংয়ে আঘাত করে।
অ্যারন শেন

উত্তর:


4

প্রশ্নের মন্তব্য সংক্ষিপ্ত:

- আমি যখন উইন্ডোটি অনুভূমিকভাবে বিভক্ত করে ঘূর্ণিত করতে একটি ফাংশন লেখার চেষ্টা করছি তবে বর্তমান লেআউটটি অনুভূমিক এবং বিপরীত মাত্র যখন দুটি দুটি উইন্ডো থাকবে।

- কেন কেবল সিটিআরএল-ডাব্লু_এল ব্যবহার করবেন না? (বা ctrl-W_R)

- আমি এটি সুবিধাজনক টগল ফাংশন হিসাবে পেতে চাই, এটি স্বয়ংক্রিয়ভাবে বর্তমান লেআউটটি সনাক্ত করে আমার জন্য সঠিক ঘূর্ণায়মান করবে তার পরিবর্তে আমাকে এটি আমার মস্তিষ্কে ভাবতে হবে এবং ব্যবহারের জন্য সঠিক কমান্ডটি চয়ন করতে হবে। আমাকে যা করতে হবে তা হ'ল সর্বদা একই কী ম্যাপিংয়ে আঘাত করে।

মাত্র দুটি উইন্ডো সমন্বিত বিন্যাসগুলির জন্য নিম্নলিখিত ফাংশনটি কাজ করা উচিত:

function! Rotate()
   " save the original position, jump to the first window
   let initial = winnr()
   exe 1 . "wincmd w"

   wincmd l
   if winnr() != 1
      " succeeded moving to the right window
      wincmd J " make it the bot window
   else
      " cannot move to the right, so we are at the top
      wincmd H " make it the left window
   endif

   " restore cursor to the initial window
   exe initial . "wincmd w"
endfunction

nnoremap <F3> :call Rotate()<CR>

দুর্দান্ত ফাংশন, আমি ভিম স্ক্রিপ্টগুলি জানি না, তবে ধন্যবাদ, এটি পুরোপুরি কার্যকর! বিটিডব্লিউ, আমি যখন কেবল দুটি উইন্ডো থাকি তখন কেবলমাত্র এটির জন্য একটি অতিরিক্ত চেক যুক্ত করি।
অ্যারন শেন 23

6

দুর্ভাগ্যক্রমে, এটি চেক করার কোনও উপায় আছে বলে আমি মনে করি না।

এটি যাচাই করে এমন একটি কাস্টম ফাংশন করার একটি উপায় থাকতে পারে: উইন্ডো নম্বরগুলি সর্বদা নীচে ডানদিকে উপরের বামে 1 থেকে n পর্যন্ত গণনা করা হয় । সম্ভবত এক থেকে জ্যামিতি ডেটার সাথে মিলিত ব্যবহার করতে পারেন winwidth(), winheight()এবং মান &linesএবং &columnsআকাঙ্ক্ষিত মানচিত্র তৈরি করবেন?

দ্রষ্টব্য, সাধারণ হওয়ার জন্য, এটি আরও জটিল বিন্যাস সমর্থন করে support উদাহরণস্বরূপ বাম দিকটি দুটি বিভক্ত হলে আউটপুটটি কী হওয়া উচিত? সম্ভবত এই কারণেই প্রথম স্থানে ফাংশনটির অস্তিত্ব নেই ...

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