আমি কীভাবে নতুন ট্যাবগুলি ডিফল্ট খুলতে পারি?


10

আমি যখন vimএকাধিক ফাইল ( vim f1 f2 ...) দিয়ে খুলি , আমি কীভাবে এগুলি সরাসরি ট্যাবগুলিতে ব্যবহার না করে এটি খুলতে পারি -p?

আমি শাঁস আচরণকে ভিএম আচরণ থেকে আলাদা করে দেখছি, vimবেসড এলিয়াসগুলি অপসারণ করা ইত্যাদি That's এজন্যই আমি এলিয়াস ইত্যাদি ব্যবহার না করাই পছন্দ করি (তাই, না -p)।

আমি নিশ্চিত যে এটিকে কয়েকটি এসই সাইটে জিজ্ঞাসা করা হয়েছে (যেমন এসও তে )। তবে, এটি করার সর্বোত্তম উপায়টি কী হবে তা বিচার করার মতো অবস্থা আমি নেই, তাই আমি প্রস্তাবিত পদ্ধতিটি কেন ভাল সে সম্পর্কে একটি নোটের জন্যও আশাবাদী।

লিঙ্কযুক্ত বিশেষ এসও পোস্টের জন্য:

  • গৃহীত উত্তর দেয় tabpagemax=9999। এটিকে ব্যক্তিগত পক্ষপাতিত্ব বলুন, তবে আমি দেখতে পাচ্ছি যে একটি সীমা একটি বৃহত সংখ্যায় নির্ধারিত হয়েছে এবং আমি মনে করি কিছু ভুল আছে (আমি যদি দেখি তবে যেভাবে অনুভব করব chmod 777)।

    :au VimEnter * set tabpagemax=9999|sil tab ball|set tabpagemax&vim
    
  • অন্য উত্তরটি আরও সংক্ষিপ্ত হওয়ার সাথে সাথে একটি অতিরিক্ত খালি ট্যাব খোলার দিকে পরিচালিত করে।

    :autocmd VimEnter * argdo tabedit
    

আমি এমন উত্তরের প্রত্যাশা করছি যাতে অতিরিক্ত ট্যাব খোলা নেই এবং এটি একটি বড় মানের সীমা নির্ধারণ করে না (বা কেন এটি খারাপ জিনিস নয় তা ব্যাখ্যা করুন)।



@ ওরেঞ্জটাক্স আমি গিলসের উত্তরের অনুপ্রেরণায় পোস্ট করেছি। তবে ডাউনটোটের সাথে আমি ভাবছি যে গিলস একটি বিদ্যমান পোস্টের সাথে লিঙ্ক করা একটি পোস্টকে কী বলবে?
muru

@ কারপেটসমোকারটি আমি আপনার মন্তব্য আপডেটটি দেখিনি। যখন আপনার সেশনগুলি :qaঅভ্যাসের জোর দিয়ে শেষ হয় তখন একটি খালি ট্যাবপেজ কোনও বড় সমস্যা নয় । যদি এটিই একমাত্র সুবিধা হয় তবে আমি অন্যটির সাথে যাব, যেহেতু এটি সহজ বলে মনে হচ্ছে।
মুরু

3
@ মুরু ডাব্লুডব্লিউজিএস? স্ট্যাক ওভারফ্লোতে উত্তরগুলি সন্তোষজনক নয় বলে ভাবার কারণ রয়েছে ? যদি তা হয় তবে আপনার প্রশ্নে তা ব্যাখ্যা করুন। যাই হোক না কেন, আপনার প্রশ্নের এসও উত্তর সংক্ষিপ্ত করুন। যদি এটির নিজের উত্তর সম্বলিত প্রশ্নের দিকে নিয়ে যায় তবে পোস্ট করবেন না।
গিলস 15-29

@ গিলস আপডেট হয়েছে। আমি আসল কমান্ডগুলি পোস্ট করি নি, আপনার কি মনে করা উচিত?
মুড়ু

উত্তর:


4

কিছু পরীক্ষা-নিরীক্ষার পরে, আমি এটি সেরা উপায় হিসাবে খুঁজে পেয়েছি; এটির মতো আচরণ করা উচিত vim -p:

au VimEnter * if !&diff | tab all | tabfirst | endif

প্রথমে একটি ট্যাবে tab allআর্গুমেন্ট তালিকার সমস্ত প্রবেশিকা খোলে ( :args)। যুক্তি তালিকা হ'ল আপনি প্রারম্ভকালে ভিমে পাস হওয়া ফাইলগুলির একটি তালিকা। এবং এটি tabfirstনিশ্চিত করে যে প্রথম ট্যাবটি শেষের চেয়ে ফোকাস করা হয়েছে (এটি alচ্ছিক)।

আমরা না এই কোন না যদি &diffসেট হয়; যদি এটি হয় তবে আমরা ব্যবহার করছি vimdiffবা vim -dযেখানে আমাদের 2 টি ট্যাব নয় 2 টি উইন্ডো থাকতে চাই

ইন এই উত্তর আমি যুক্তি তালিকা এবং সম্পর্কে একটু লিখেছি tab allযা সুদের করা যেতে পারে।


অন্যান্য সমাধান সম্পর্কে কিছু নোট:

  • tab ballবাফার তালিকার প্রতিটি প্রবেশের জন্য একটি ট্যাব খোলে , আর্গুমেন্টের তালিকা নয়। "সমস্যা" হ'ল বাফার তালিকাটি প্রস্থান করার সময় viminfo ফাইলে সংরক্ষণ করা যেতে পারে এবং প্রারম্ভকালে পুনরুদ্ধার করা যেতে পারে (যদি থাকে %তবে 'viminfo'ডিফল্টরূপে সক্ষম না হয়)। সুতরাং আপনি কেবল এটি টাইপ vimকরলে সেই ফাইলগুলি খুলবে। আমি এটিকে অনাকাঙ্ক্ষিত বলে বিবেচনা করি, যদিও আমি কল্পনা করতে পারি কিছু লোক এটির দরকারী বলে মনে করে; তাই আপনি যা পছন্দ করেন তা ব্যবহার করুন।

  • set tabpagemax=9999এটা দরকারি না; ডিফল্ট হয় 10, এবং এটি ঠিক করা উচিত। আপনি যদি আরও চান তবে আপনি এটি আপনার ভিএমআরসি-তে বাড়িয়ে নিতে পারেন, তবে 9999এটি একটি নির্বোধ নম্বর। আপনি ব্যবহার করেন তাহলে -p, এছাড়াও আপনি পেতে tabpagemaxট্যাব। সুতরাং এটি যে সম্মান করা উচিত। মনে রাখবেন যে এটি স্টার্টআপে একটি বাফার খুলবে (পড়ুন), সুতরাং এটি বরং ধীরে ধীরে।

  • autocmd VimEnter * argdo tabeditবলার ঠিক একই পদ্ধতি tab all। তবে, প্রাথমিক বাফারটি সাফ করা হয়নি, সুতরাং আপনি সেই অতিরিক্ত ট্যাবটি রেখে গেছেন ( tab allসমস্ত ট্যাব প্রতিস্থাপন করে)। এটি ঠিক করার জন্য, জোশ পেট্রির উত্তরে আপনার কাজ করা দরকার।


2

আমি মনে করি আপনার সাথে এরকম কিছু যুক্ত করা .vimrcআপনার সমস্যার সমাধান করতে পারে (দ্রষ্টব্য, তবে আমি আসলে এটি ব্যবহার করি না এবং কেবল সর্বনিম্ন পরীক্ষাও করেছি, এটি কিছু ক্ষেত্রে অদ্ভুত কাজ করতে পারে):

function! OpenArgumentsInTabs()
  ardo tabedit
  if tabpagenr("$") > 1
    tabclose
  endif
endfunction

autocmd VimEnter * call OpenArgumentsInTabs()

আপনি যেমন উল্লেখ করেছেন, argdo tabeditআপনাকে একটি খালি অতিরিক্ত ট্যাব রেখে দেবে। সুতরাং আপনি স্বয়ংক্রিয়ভাবে সেই ট্যাবটি বন্ধ করতে পারেন। তবে, আপনি কেবল চেক না করা tabcloseচাওয়াতে পারবেন না , বা আপনি কোনও যুক্তি বা একক ফাইল ছাড়াই এটি চালু করার সময় ভিএম আপনাকে একটি ত্রুটি দেবে (আপনি "শেষ ট্যাবটি বন্ধ করতে পারবেন না")। পরিবর্তে, মোট ট্যাবগুলির সংখ্যা একের চেয়ে বেশি কিনা তা পরীক্ষা করে দেখুন (এটিই প্রত্যাবর্তনের $কারণ tabpagenr) এবং কেবলমাত্র তখন আপনাকে শেষ ট্যাবটি বন্ধ করতে হবে।


এটি বলেছিল, আমার মনে হয়েছে যে এটি উল্লেখ করা মূল্যবান যে ভিআইমের ট্যাবগুলি অন্যান্য সম্পাদকদের ট্যাবগুলির মতো নয় , এবং কীভাবে আপনার ওয়ার্কফ্লোতে ট্যাবগুলি ব্যবহার করবেন তা বিবেচনা করার সময় এটি মনে রাখা উচিত (আপনি এটি সম্পর্কে সচেতন বলে মনে করছেন তবে আমি ভবিষ্যতের পাঠকদের সুবিধার্থে পয়েন্ট তৈরি করতে চান যারা সম্ভবত নিজের সিদ্ধান্ত নিতে পারে না)।

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