আমি কোনও নতুন ট্যাবে ভিএম-তে কীভাবে বিদ্যমান বাফার সম্পাদনা করব?


51

ধরুন আমি এইভাবে ভিএম শুরু করেছি:

vim foo bar

এখন আমি স্থির করি যে আমি সেই ফাইলগুলির প্রত্যেকটির নিজস্ব ট্যাবে চাই। ভিআইএম ছাড়াই এবং -pআমার কমান্ড লাইনে বিকল্পটি যুক্ত না করে কী করার উপায় আছে?


আপনারা অনেকেই সম্ভবত সন্ধান করছেন tabe %যা নীচে লিউয়াং 1 এর উত্তরে উল্লিখিত হয়েছে ।
ম্যাটিউজ পিয়োত্রস্কি

1
আমি ভালো লেগেছে @MateuszPiotrowski উল্লেখ যে উত্তর এই মন্তব্যটি , :tabe %বাফার কোনো বৈধ filepath আছে সঙ্গে কাজ করে না। :tab sbসর্বদা কাজ করে।
জোল

উত্তর:


30

আপনি যখন ভিএম এর মতো শুরু করেন, আপনি কোনও ভিআইএম ক্লায়েন্ট পাবেন না, টেক্সট এডিটর টার্মিনাল বা সেমিডি প্রম্পট ব্যবহার করছে - দুটি ফাইল দুটি পৃথক বাফারে রয়েছে। :lsবাফারগুলির তালিকা করতে ব্যবহার করুন :

:ls
  1 %a   "foo"                 line 6
  2      "bar"             line 0

% A সক্রিয় বাফার। আপনি :b2বাফার 2 এ স্যুইচ করতে ব্যবহার করতে পারেন বা চক্রটিতে :bnপরবর্তী বা :bpআগেরটির জন্য ব্যবহার করতে পারেন । আমি (সিটিআরএল-ডাব্লু ভি) পছন্দ করি (উইন্ডোটি অনুভূমিকভাবে বিভক্ত হয়ে) (সিটিআরএল-ডাব্লু) এর পরিবর্তে উল্লম্বভাবে উইন্ডোগুলি বিভক্ত করতে।

আপনার যদি 2 টি ফাইল লোড থাকে এবং কোনও ট্যাব নেই (এখনও), আপনি এটি করতে পারেন :tabnewএবং নতুন ট্যাব প্রকারে:b2

আপনি যদি সর্বদা বাফারদের নিজের ট্যাবগুলিতে বোঝাতে চান তবে এই নিবন্ধটি দেখুন


হ্যাঁ, তবে আমি ট্যাবগুলি রাখতে চাই।
innaM

সুতরাং আপনি ইতিমধ্যে এমনভাবে ভিএম শুরু করেছেন যে আপনার ফাইলগুলি ভিএম ক্লায়েন্টে রয়েছে, কোনও সেন্টিমিডি / টার্মিনাল শেল নয়?
ডেভপ্যারিলো

1
আপনি কি বোঝাতে চাচ্ছেন তা আমি নিশ্চিত নই. আমি উপরের বর্ণনার মত ভিএম শুরু করতে শেলটি ব্যবহার করি এবং তারপরে আমার একটি চলমান ভিএম থাকে।
innaM

আহ! আমার ধারণা আমি কখনই বুঝতে পারি নি যে বাফারগুলি ট্যাবগুলিতে স্থানীয় নয়। আমি সর্বদা ভাবতাম (সত্যই বেশি চিন্তা না করে) যে প্রতিটি ট্যাবের নিজস্ব বাফার তালিকা রয়েছে।
innaM

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

47

আপনি একটি নতুন ট্যাবে একটি বাফার খুলতে চান?

স্ক্রিনটি বিভক্ত করুন (Ctrl-W গুলি), একটি উইন্ডো নিন এবং Ctrl-W T


হুম। আমার মনে যা ছিল তা পুরোপুরি নয়, তবে শুরু করার জন্য খারাপ নয়। আমি Ctrl-w Tএখনও সম্পর্কে জানতাম না । অবশ্যই, প্রথম ট্যাবটিতে এখনও দুটি বাফার থাকবে।
innaM

না। আপনি পর্দাটি দুটি উইন্ডোতে বিভক্ত করার পরে এবং তার মধ্যে একটি নতুন ট্যাবে খোলার পরে এটি প্রথম ট্যাব থেকে দূরে চলে যায়। এটি থেকে যাবে না (কমপক্ষে এটি আমার জিভিম on72-তে থাকে না)। বাফাররা যতদূর যায় সেগুলি উইন্ডো / ট্যাবগুলির সাথে সংযুক্ত থাকে না ... এগুলি মেমরির মতো যেখানে ভিম ফাইল সামগ্রী সংরক্ষণ করে।
রোক

আহ! তুমি ঠিক বলছো. আমি এর আউটপুট ভুল ব্যাখ্যা করা ছিল :ls
innaM

এছাড়াও, ctrl-w V উইন্ডোটিকে উল্লম্বভাবে বিভক্ত করে।
শ্যানন নেলসন


27

tabকমান্ডের সাথে কমান্ডটি একত্রিত করে আপনি এটি সম্পাদন করতে পারেন sb[uffer]

প্রথমে আপনাকে একটি নতুন ট্যাবে খুলতে ইচ্ছুক বাফারের বাফার আইডিটি জানতে হবে। lsকমান্ডের সাহায্যে এটি খুঁজে পেতে পারেন :

:ls
  1 %a   "foo"                          line 1
  2      "bar"                          line 0

আপনার আইডি হয়ে গেলে আপনি সহজেই এটি ব্যবহার করে একটি নতুন ট্যাবে খুলতে পারেন:

:tab sb 2

sbকমান্ড সাধারণত একটি নতুন বিভক্ত উইন্ডোতে দেওয়া বাফার খোলে, কিন্তু tabকমান্ড এটি একটি নতুন ট্যাবে খুলুন, পরিবর্তে ঘটায়।

tabকমান্ড যেখানে ট্যাব তালিকায় নতুন ট্যাব তৈরি করা উচিত হবে আপনাকে তা নির্দিষ্ট করার অনুমতি দেয়। উদাহরণস্বরূপ, :0tab sb 2ফলাফলটি নতুন 'বার' ট্যাবটি বর্তমান ট্যাবের পরিবর্তে তালিকার শুরুতে প্রদর্শিত হবে।


2
আপনার বাফার নম্বর লাগবে না, এটিকে বাফার নামের একটি দ্ব্যর্থহীন অংশ দিন এবং বাকিটা আপনার জন্য ভিআইএম করে।
মিষ্টান্ন

1
এটি তাই আমি উত্তরটি খুঁজছিলাম এবং প্রয়োজনীয় ছিল। :tab buffer part-of-nameনতুন ট্যাব না খোলার সময় আমি হতাশ হয়ে গেলাম ! তবে :tab sb part-of-nameমনোহর মতো কাজ করেছেন। ধন্যবাদ!!!!
সুকিমা

এটি
ওপির

25

ওপি যা চেয়েছিল তা সম্পাদন করার সর্বোত্তম উপায় হ'ল:

:bufdo tab split

এটি প্রতিটি বাফারকে তার নিজের একটি ট্যাবে খুলবে, সেখানে যতগুলিই হোক না কেন। আপনি যদি এটি বেশি ব্যবহার করেন তবে আপনার .vimrc এ ম্যাপিং করা সহজ। এই ছোট্ট ভিআইএম প্লাগইনের মতো কিছু সংযুক্ত করে নীচে প্রতিটি আইটেম তার নিজস্ব ট্যাবে খুলবে :grep(বা : আ্যাক ):

:grep foo
:QuickFixOpenAll
:bufdo tab split

অবশ্যই, প্লাগইনটি অবলম্বন করার সময় সরাসরি ট্যাবগুলিতে কুইকফিক্স তালিকা বিষয়বস্তু খোলার জন্য এটি পরিবর্তন করা যথেষ্ট সহজ।

আপডেট : আমি সত্যিই নীচে গুগাটাফসনের মন্তব্যে চিৎকার করব। এটি প্রচুর সর্বোত্তম উত্তর বহুদূরে এবং রচনাগত আচরণের প্রতি ভিমের প্রবণতাটিকে সুন্দরভাবে চিত্রিত করে। পরামর্শটি হ'ল:

 :tab sball

এটা ভাল মূল্য জন্য তেজ সাহায্যের আপ খুঁজছেন এর ট্যাব: এবং : sball দেখতে এখানে কি ঘটছে হচ্ছে।


পূর্ববর্তী সম্পাদন করা থেকে একটি অনুরূপ পদ্ধতি, বংশধরগণ জন্য হয় :bufdo execute "tabnew %"। আমি মনে করি যে নতুন পদ্ধতিটি আরও পরিষ্কার।
জন হুইটলি

একটি সতর্কতা: যদি ভিমে শুরু করা বাফারটি খালি না থাকে তবে এটি শেষ বাফারটি দু'বার খুলবে বলে মনে হচ্ছে। আমি যদি একটি সাধারণ সমাধান পাই তবে আমি একটি আপডেট পোস্ট করব।
জন হুইটলি

12
:tab sballভাল কাজ বলে মনে হচ্ছে।
ggustafsson

6

1. ভিম দুটি ফাইল খুলুন।

im ভিম ফু বার

২. বাফারগুলির সংখ্যা পরীক্ষা করুন।

: lS
  1% a "foo"
  2 "বার"

৩. দুটি কমান্ড চেইন করুন: tabnewএকটি নতুন ট্যাব খুলতে এবং ট্যাবে b <buffer_number>কাঙ্ক্ষিত বাফার লোড করতে।

: টবনেউ | খ ২

8
পদক্ষেপ 3 এর সমস্যাটি হ'ল এটি প্রথমে একটি খালি বাফার দিয়ে একটি নতুন ট্যাব তৈরি করে এবং তারপরে বাফার 2 খুলবে, ফলে বাফার তালিকায় অতিরিক্ত শিরোনামহীন বাফার তৈরি হবে। আরও ভাল:tab sb 2
rkjnsn

1
@ আর কেজেএনএসএন আপনার উত্তর হিসাবে পোস্ট করা উচিত - এই প্রশ্নের উত্তরের উত্তর দেয় 'আমি কীভাবে একটি নতুন ট্যাবে বিদ্যমান বাফারটি ভিএম-এ সম্পাদনা করব?'
জনিআআআআআআআআআআআআআআআআআআআআআআআআআ

1
@ জনিলিডস শেষ হয়েছে
rkjnsn

4

অন্য কিছু ছেলের উল্লেখ না করে কেবল এমন একটি পয়েন্ট যুক্ত করুন।

  • নতুন ট্যাবে বর্তমান উইন্ডো

যদি একাধিক উইন্ডো থাকে তবে <C-W>Tএই উইন্ডোটিকে নতুন ট্যাবে স্থানান্তরিত হবে। তবে এই শর্টকাটটি কেবল "উইন্ডো" এর জন্য, "বাফার" নয়। যদি এই স্টাইলটি পছন্দ করে :spবা <C-W>sবর্তমান বাফারটিকে আরও একটি উইন্ডোতে সদৃশ করতে হয়, তবে <C-W>Tএটিকে নতুন ট্যাবে স্থানান্তরিত করতে।

4 টি কীস্ট্রোক বা 7 টি কীস্ট্রোক।

  • নতুন ট্যাবে বর্তমান বাফার

:tabe % বর্তমান বাফার জন্য নতুন ট্যাব খুলতে।

7 টি কীস্ট্রোক।

  • নতুন ট্যাবে বাফার করুন

যদি CtrlP প্লাগইন ব্যবহার করে তবে "CtrlPBuffer" ব্যবহার করতে পারে, তারপরে <C-t>শর্টকাট দিয়ে এটি নতুন ট্যাব পৃষ্ঠাতে খুলতে। এই স্টাইলটি সহজেই বিভিন্ন বাফারগুলিতে স্যুইচ করে।

"CtrlPBuffer" এর শর্টকাট সহ, 4 টি কীস্ট্রোক বা আরও বেশি।


:tabe %আমি যা অনেকদিন ধরে খুঁজছিলাম, ধন্যবাদ!
পেভিক

না, :tabe %বর্তমান বাফারের জন্য সত্যই কোনও নতুন ট্যাব খোলে না। যা ঘটে তা %বর্তমান বাফারের ফাইলপথে প্রসারিত হয় এবং :tabeসেই পথটি খোলে। ভিম দেখতে পাবেন আপনি ইতিমধ্যে খালি একটি ফাইল খোলার চেষ্টা করছেন এবং আপনার থাকা বাফারটিকে পুনরায় ব্যবহার করবেন। এর অর্থ এই যে কোনও ফাইলপথ নেই এমন বাফারগুলির সাথে এটি কাজ করে না। যদি আপনি :newএটির সাথে একটি নতুন ফাইল খুলেন এবং আপনি এটি সংরক্ষণ না করেন তবে আপনি এটি দিয়ে এটি কোনও নতুন ট্যাবে রাখতে পারবেন না। আপনার যে আসল কমান্ডটি দরকার তা হ'ল rkjnsn তাদের উত্তরে যা লিখেছিল: :tab sb %বা সংক্ষিপ্ত::tab sb
জোল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.