দুটি উইন্ডোর অবস্থান অদলবদল করুন


29

নিম্নলিখিতটি আমার উইন্ডোটির বর্তমান কাঠামোটি বলুন:

+ + ----- + + ----------------------------
| |
| ক |
| |
+ + ----- + +
| |
| খ |

এ এবং বি এর ক্রমটি একেবারেই স্বাভাবিক নয়। বি শীর্ষে থাকলে ভাল হত।

যাইহোক, আমি যদি যাই <C-w>K, বি সমস্ত উইন্ডোগুলির মধ্যে শীর্ষস্থানীয় হবে, যা আমি চাই না। আমি কীভাবে বি কে A এর উপরে রাখতে পারি, তবে ইতিমধ্যে A এর উপরে থাকা অন্য কোনও উইন্ডোর উপরে নয়?

এবং যদি দুটি উইন্ডো উল্লম্বভাবে বিভক্ত হয় তবে আমি কীভাবে সেগুলি আনুভূমিকভাবে বিভক্ত করতে পারি?


7
উইন্ডোজ ঘোরানোর পদ্ধতিটি এই পোস্টটিতে ব্যাখ্যা করা হয়েছে। এটি উল্লম্ব থেকে অনুভূমিক দিকে বিভাজনগুলি স্যুইচ করা সম্পর্কে।
lcd047

@ lcd047 এগুলি এই সাইটের বাইরে প্রশ্ন। এখানে কি একটি ছোট উত্তর লেখার উপযুক্ত এবং লিঙ্কগুলি অন্তর্ভুক্ত করা (যা মূল্যবান)?
বার্নহার্ড

1
@Bernhard আমি অনুমান এই জন্য একটি ভাল প্রশ্ন মেটা
lcd047

1
@Bernhard হ্যাঁ । শুধু লিঙ্ক নয়, একটি সম্পূর্ণ উত্তর লিখতে ভুলবেন না।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

1
তারপরে দয়া করে ব্যাখ্যা করুন আপনি কী করতে চাইছেন এবং কেন দুটি উত্তর আমি আপনাকে নির্দেশ করেছি যাতে সমস্যার সমাধান না করা যায়।
lcd047

উত্তর:


33

একটি বিভক্ত উইন্ডো দুটি অংশ অদলবদল করতে সহজভাবে করুন: <C-w> <C-r>


আমি ভুল হতে পারি তবে আপনার সমাধান উইন্ডোজগুলি ঘোরান যাতে 2 টিরও বেশি বিভাজনের সাথে ফলাফলটি ওপি যা খুঁজছিল তা হবে না।
স্ট্যাটক্স

তুমি একদম সঠিক. ওপেন sthth খুঁজছিল "বিভক্ত উইন্ডোর দুটি অংশ অদলবদল" এর চেয়ে আরও জটিল।
মোডেস্টো

আসলে ওপি দুটি বিভক্ত উইন্ডো অদলবদলের জন্য একটি কমান্ড সন্ধান করছে তবে আপনার সমাধানটি বর্তমান স্প্লিট উইন্ডোর সমস্ত ঘোরান। যেমনটি বলা হয়েছে :h CTRL-W_CTRL-R: The second window becomes the first one, the third one becomes the second one, etc.সুতরাং যদি আপনার কাছে 3 টি বিভাজন থাকে তবে নীচের একটির উপরের কার্সারটি এবং <c-w><c-r>3 য় উইন্ডোটি টিপুন অন্য 2 How can I put B above A, but not above any other window that is already above A?
টির

6

windowঅবস্থানগুলি অদলবদল করার জন্য , প্রভাবটি সেই দুটি উইন্ডোতে প্রদর্শিত বাফারগুলির অদলবদলের সমতুল্য।
উদাহরণস্বরূপ, যদি উইন্ডো A এর বাফার 2 থাকে এবং উইন্ডো বিতে বাফার 8 থাকে, আপনি উইন্ডো এতে যেতে চান, বাফার 8 নির্বাচন করতে পারেন, তারপরে উইন্ডো বিতে, বাফার 2 নির্বাচন করুন।

এই ধারণাটি আমাকে এটি স্ক্রিপ্ট করতে অনুপ্রাণিত করেছে - এবং এটি ইতিমধ্যে আমার নিজের সরঞ্জাম বাক্সেও রয়েছে

ফাংশন কোড:

function! WinBufSwap()
  let thiswin = winnr()
  let thisbuf = bufnr("%")
  let lastwin = winnr("#")
  let lastbuf = winbufnr(lastwin)

  exec  lastwin . " wincmd w" ."|".
      \ "buffer ". thisbuf ."|".
      \ thiswin ." wincmd w" ."|".
      \ "buffer ". lastbuf
endfunction

command! Wswap :call WinBufSwap()
map <Leader>bs <C-c>:call WinBufSwap()<CR>
  1. উইন্ডো এ নির্বাচন করুন
  2. উইন্ডো বি নির্বাচন করুন
  3. :call WinBufSwap()
    এটি দুটি প্রাক-নির্বাচিত উইন্ডোতে বাফারগুলি অদলবদল করে, মূল উইন্ডোতে কার্সার রেখে।

সময়ের আগে অদলবদল করার জন্য দুটি কাঙ্ক্ষিত উইন্ডোজ নির্বাচন করা মূল বিষয়বস্তু, কারণ ভিমে কোনটির সাথে কাজ করা উচিত তা নির্দিষ্ট করার জন্য এটি প্রয়োজনীয়।


কেবলমাত্র একটি নির্ভুলতা, আপনি যখন "উইন্ডোটি A নির্বাচন করুন, তারপরে B" বলতে চান, তখন আপনার কি বোঝানো হয়েছে "শেষবারের বাফার এবং উইন্ডোগুলির ক্রমটি চিহ্নিত করতে, সঠিকভাবে অদলবদল করতে," A তে মনোযোগ দিন? " "ফোকাস থাকা" ব্যতীত অন্য কোনও অর্থ নির্বাচন করুন?
পাদবিন

হ্যাঁ ঠিক: আমি "নির্বাচন করুন" হিসাবে "ফোকাস" হিসাবে ব্যবহার করছি।
কমেটসং

6
উইন্ডো এন এর সাথে সিটিআরএল-ডাব্লু এক্স এক্সচেঞ্জ বর্তমান উইন্ডো
                   (ডিফল্ট: পরবর্তী উইন্ডো)

( index.txtবিভাগ ২.২, "উইন্ডো কমান্ড")

যদি এ বর্তমান উইন্ডো হয়, তবে পরবর্তীটি বি হবে, সুতরাং আপনার কেবল প্রয়োজন <C-w> x

বি যদি বর্তমান উইন্ডো হয় (এবং নীচে আরও উইন্ডো রয়েছে) তবে আপনাকে প্রথমে A এ যেতে হবে, তারপরে এক্সচেঞ্জ করুন: <C-w> k <C-w> x


4

উইন্ডোজ অদলবদল বা বাফারগুলিকে অদলবদলের আরেকটি বিকল্প হ'ল আপনার ফাইলগুলিতে অবস্থান চিহ্নিত করা ( বড় হাতের অক্ষর ব্যবহার করে) চিহ্নিত করা এবং আপনার পছন্দের উইন্ডোগুলিতে সেই চিহ্নগুলি খুলুন।

উদাহরণস্বরূপ যদি আমার কাছে দুটি ফাইল, ফাইল_এ এবং ফাইল_বি থাকে :

  • আমি ফাইল_এ দিয়ে উইন্ডোতে গিয়ে এটি চিহ্নিত করব:mA
  • ফাইল_বি দিয়ে উইন্ডোতে যান এবং এটি চিহ্নিত করুন:mB
  • তারপরে সেই উইন্ডোতে ফাইল_এর চিহ্ন আনুন :'A
  • তারপর প্রথম যে উইণ্ডোটি ফিরে যান এবং চিহ্ন আনা file_B সেখানে: 'B

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


0

আপনি নিম্নলিখিত ফাংশন দিয়ে দুটি উইন্ডোর মধ্যে বাফারগুলি অদলবদল করতে পারেন:

function! SwitchWindow(count) abort
    let l:current_buf = winbufnr(0)
    exe "buffer" . winbufnr(a:count)
    exe a:count . "wincmd w"
    exe "buffer" . l:current_buf
    wincmd p
endfunction
nnoremap <C-w>x :<C-u>call SwitchWindow(v:count1)<CR>

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

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