আপনি কীভাবে ভিমে বাফারগুলির মধ্যে স্যুইচ করতে পছন্দ করেন?


92

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

উত্তর:


23

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

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

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

সহজ বাফার স্যুইচিংয়ে অনেক দরকারী টিপস রয়েছে। আমি নীচেরটি আমার .vimrc এর সাথে মানিয়ে নিয়েছি, যা বাফার-নাম অটো-সমাপ্তি করে, আমার <লিডার> এবং বাম পাশের হোম সারি কীগুলিতে সর্বাধিক দরকারী বাফার-স্যুইচিং কমান্ডগুলি ম্যাপ করে এবং স্থিতির লাইনে বর্তমান বাফার নম্বরটি দেখায় :

"" Tab triggers buffer-name auto-completion
set wildchar=<Tab> wildmenu wildmode=full

let mapleader = ","

map <Leader>t :CommandT<Return>
map <Leader>a :bprev<Return>
map <Leader>s :bnext<Return>
map <Leader>d :bd<Return>
map <Leader>f :b 

"" Show the buffer number in the status line.
set laststatus=2 statusline=%02n:%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

আমি মিনিবুফএক্সপ্লোরারও ব্যবহার করি , যা প্রতিটি উল্লিখিত বাফারের নিজস্ব অনুভূমিক বিভক্ত শীর্ষে একটি কমপ্যাক্ট তালিকা সরবরাহ করে।


73

আমি ট্যাব এবং একাধিক gvim দৃষ্টান্তের সংমিশ্রণটি ব্যবহার করতাম, প্রতিটি ফাইলের সাথে সম্পর্কিত ফাইলগুলির দলগুলিকে ট্যাব হিসাবে রাখি। এতক্ষণ যতক্ষণ না আমি একটি পরিস্থিতিতে খুব বেশি ট্যাব দিয়ে শেষ করেছি, ট্যাব বারটি আপনি এক নজরে সম্পাদনা করছেন এমন প্রতিটি ফাইলের নাম দেখায়।

তারপরে আমি জামিস বাকের একটি পোস্ট পড়লাম কীভাবে তিনি টেক্সটমেট থেকে ভিমে ফিরে এসেছিলেন এবং কিছু দুর্দান্ত কৌশল শিখলেন:

  • বর্তমান উইন্ডোটি বিভক্ত করতে Ctrl-w s এবং Ctrl-w v
  • একই উইন্ডোতে দুটি বাফারের মধ্যে পিছনে স্যুইচ করতে Ctrl-6।
  • দারুণ ফাজিফাইন্ডার.ভিম যা আপনার বর্তমান ডিরেক্টরিতে বা আপনি যে খালি খোলার জন্য বাফারগুলিকে ফাইলগুলি স্বয়ংক্রিয়ভাবে সন্ধান করতে দেয়
  • জামিসের নিজস্ব ফাজি_ফাইল_ফাইন্ডার এবং ফজিফিন্ডার_টেক্সটমেট , যা টেক্সটমেটে অনুরূপ বৈশিষ্ট্যের মতো ফিজিফাইন্ডার আরও কতটা আচরণ করতে কাজ করে তা সামান্য পরিবর্তন করে (যতদূর আমি বলতে পারি, পার্থক্যটি এটি ফাইল থেকে শুরুতে পরিবর্তে যে কোনও জায়গায় মেলে)। এটি কার্যকরভাবে দেখতে এই ভিডিওটি দেখুন।

এখন আমার কাছে কেবল একটি জিভিআইএম দৃষ্টান্ত রয়েছে, সর্বাধিক করা হয়েছে এবং এটি একাধিক উইন্ডোতে বিভক্ত হয়েছে যাতে আমি একবারে বেশ কয়েকটি ফাইল দেখতে পারি। আমি Ctrl-F কে fuzzyfinder_textmate তে আবদ্ধ করেছি, এখন এখন যদি আমি টাইপ করি (বলি) Ctrl-Fmod/usob এটি অ্যাপ / মডেলগুলি / user_observer.rb খুলবে। আমি আর কখনও ট্যাব নিয়ে বিরক্ত করি না।

আপডেট 2010/08/07

যদিও fuzzyfinder_textmate অসাধারণ রয়ে গেছে, যেমন ক্যাসি মন্তব্যগুলিতে উল্লেখ করেছেন, এটি আর রক্ষণাবেক্ষণ করা হবে না। এছাড়াও, এটি (এবং / অথবা fuzzyfinder.vim) বড় প্রকল্পগুলি (প্রচুর ডিরেক্টরি বা ফাইল) এর সাথে কাজ করার সময় কিছুটা ধীর এবং অস্থির হয়ে ওঠে, তাই আমি বিকল্পের সন্ধান করছি।

সৌভাগ্যবসত, আকারে একটি খুব সুন্দর বিকল্প মনে করা হয় Wincent Colaiuta এর কমান্ড-টি প্লাগইন । এটির সাথে ফাজিফাইন্ডার_টেক্সটমেটের সাথে খুব সামান্য (যদি কিছুটা ভাল না হয়) আচরণ করা হয় তবে তা লক্ষণীয়ভাবে দ্রুত হয়; এটিতে বিভক্ত বা উল্লম্ব বিভাজনে পাওয়া ফাইলটি খুলতে সক্ষম হওয়ার মতো সুন্দর বৈশিষ্ট্যও রয়েছে। ডেভিড রিভার্সের দিকে ইঙ্গিত করার জন্য ধন্যবাদ (এবং উজ্জীবিত!)


হ্যাঁ, ফিজিফাইন্ডার আমি যা চাই তার সাথে খুব ঘনিষ্ঠ ফিট।
আলেক্সি রোমানভ

জামিসের ফাজি ফাইন্ডার_টেক্সটমেট ভিম সম্পূর্ণ করে। এটি সত্যিই একটি মূল বৈশিষ্ট্য হওয়া উচিত!
csexton

দেখে মনে হচ্ছে জামি এই প্রকল্পে কাজ করা বন্ধ করে দিয়েছে। সম্ভবত মূল লেখক এই বৈশিষ্ট্যগুলি টানবেন? weblog.jamisbuck.org/2009/1/28/…
সে.মি.গিন্টি

স্যাম, আপনি যে প্রস্তাব দিয়েছেন তার জন্য ধন্যবাদ (আমার জন্মদিনে!): ডি
ডেভিড রিভারস

14
সিটিআরএলপি ভিআইএম প্লাগইন চেষ্টা করুন ( kien.github.com/ctrlp.vim ) এটি ফাজিফাইন্ডার বাস্তবায়ন করে তবে আরও এক টন আরও দরকারী বৈশিষ্ট্য সহ :)
ফিলিপ

33

আমি বেসিকগুলি ব্যবহার করি - ' :ls' + ' :bn' / ' :bp' ' :b <part-of-name>'


8
:-) আমি কখনও ভাবিনি যে আমি "সরল" এবং "': ls' + ': বিএন' / ': বিপি' + ': বি <part-of-name>'" একই বাক্যে দেখছি।
paxdiablo

16
প্যাক্স, আমি এখনও এটি দেখতে পাচ্ছি না। :-)
csexton

এটি, প্লাস :map <c-n> :bn<cr>এবং :map <c-p> :bp<cr>, যেহেতু C-nএবং C-pআপনি বারবার টিপলে বাফারগুলির মধ্যে সাইক্লিং টাইপ করতে এবং মঞ্জুরি দেওয়ার পক্ষে দ্রুত। (আমি এগুলি কখনই তাদের আসল উদ্দেশ্যে ব্যবহার করি নি)) এটি ব্রাউজার ট্যাবগুলির সাথে C-PgUpএবং C-PgDnবা আপনার ব্রাউজারে যা কিছু আছে শর্টকাট রয়েছে তার মধ্যে সাইক্লিংয়ের মতো ।
টোবিয়া

বেশিরভাগ অন্যান্য সম্পাদকের মধ্যে সিআরটিএল + এন হ'ল 'নতুন ফাইল' এর মান এবং সিটিআরএল + পি হ'ল পেস্ট কমান্ড, তাই বেশিরভাগ মানুষের ক্ষেত্রে এগুলি সত্যই বিভ্রান্তিকর হবে। টিম পোপের ভিম-অবিবাহিত আপনাকে [bপূর্বের বাফার এবং ]bপরবর্তী বাফারের জন্য দেয়। ]পরবর্তী এবং [পূর্ববর্তীগুলির ধারণাটি ব্যবহার করে এমন অন্যান্য গুডির অতিরিক্ত লোড ।
icc97

31

উইন্ডোটি বিভক্ত করতে আমি "ctrl-w s" এবং "ctlr-w v" পছন্দ করি। তারপরে আমি বিভক্ত উইন্ডোগুলির মধ্যে সরানোর জন্য চেপে রাখা সিটিটিএল দিয়ে মুভমেন্ট কীগুলি (এইচ, জে, কে, এল) ম্যাপ করব:

" Map ctrl-movement keys to window switching
map <C-k> <C-w><Up>
map <C-j> <C-w><Down>
map <C-l> <C-w><Right>
map <C-h> <C-w><Left>

আমার হাতটি তীর কীগুলির কাছে নিয়ে যাওয়া বিরক্তিকর।

এর পরে, আমি বর্তমান উইন্ডোতে বাফারগুলির মধ্যে স্যুইচলার জন্য সিটিএলআর-ট্যাব সেট আপ করেছি (অন্যান্য পরিবেশের মতো):

" Switch to alternate file
map <C-Tab> :bnext<cr>
map <C-S-Tab> :bprevious<cr>

এগুলি গত বেশ কয়েক বছর ধরে আমার জন্য বেশ ভালভাবে কাজ করেছে যদিও ভিআইএম এর কাছে আপনার জানার চেয়ে বেশি গোপনীয়তা রয়েছে।


4
আপনার মন্তব্য "বিকল্প ফাইলে স্যুইচ করুন" বিভ্রান্তিকর কারণ ভিমে ইতিমধ্যে একটি বিকল্প ফাইল রয়েছে, এটি আপনার আগের ফাইল ছিল এবং আপনি বর্তমান (%) এবং বিকল্প (#) ফাইলগুলি সহজেই সিআরটিএল -6 ব্যবহার করে স্যুইচ করতে পারেন।
ধুসর

10
এছাড়াও, hjkl সহ <সিডব্লু> উইন্ডোগুলি স্যুইচ করবে - তীর কীগুলি প্রয়োজন নেই।
ধুসর

4
<CS- ট্যাব> আরএসআইয়ের জন্য জিজ্ঞাসা করছে। আমি ম্যাপ আছে <এসজে> এ :bpএবং <এস কে> এ:bn
PUK

4
<SJ> রিম্যাপ করা স্বাভাবিক মোডে একটি দুর্বল পছন্দ বলে মনে হয়, কারণ এটি সাধারণত ব্যবহৃত হয় (সংযুক্তি রেখার জন্য)।
মাইকেল পার্সি

18
nmap <Leader>bb :ls<CR>:buffer<Space>

এবং কেউ সুন্দর প্লাগইন ctrlp.vim উল্লেখ করেনি । এই প্লাগইনটি ব্যবহার করে আপনি নাম অনুসারে বাফার অনুসন্ধান করতে পারেন।


আমি যে ম্যাপিং পছন্দ! স্মার্ট এবং নমনীয়।
আইভান

14

আমি ব্যবহার করি

CTRL- Jপরবর্তী বাফার জন্য

CTRL- Kপূর্ববর্তী বাফার জন্য

CTRL-L পরবর্তী ট্যাব জন্য

CTRL- Hপূর্ববর্তী ট্যাব জন্য

.vimrcকনফিগারেশনটি এখানে :

map <C-J> :bnext<CR>
map <C-K> :bprev<CR>
map <C-L> :tabn<CR>
map <C-H> :tabp<CR>

Http://syskall.com/my-biggest-vim-productivity-boost/ দেখুন


5
imap <A-1> <Esc>:tabn 1<CR>i
imap <A-2> <Esc>:tabn 2<CR>i
imap <A-3> <Esc>:tabn 3<CR>i
imap <A-4> <Esc>:tabn 4<CR>i
imap <A-5> <Esc>:tabn 5<CR>i
imap <A-6> <Esc>:tabn 6<CR>i
imap <A-7> <Esc>:tabn 7<CR>i
imap <A-8> <Esc>:tabn 8<CR>i
imap <A-9> <Esc>:tabn 9<CR>i

map <A-1> :tabn 1<CR>
map <A-2> :tabn 2<CR>
map <A-3> :tabn 3<CR>
map <A-4> :tabn 4<CR>
map <A-5> :tabn 5<CR>
map <A-6> :tabn 6<CR>
map <A-7> :tabn 7<CR>
map <A-8> :tabn 8<CR>
map <A-9> :tabn 9<CR>

4
ভিমের সাথে সবচেয়ে আকর্ষণীয় বিষয় হ'ল আপনি প্রতিদিন কিছু শিখতে পারেন!
লুক এম

প্রশ্নটি বাফার সম্পর্কে , ট্যাবগুলিতে নয় ... তবে আপনি :tab sballপ্রথমে বা ব্যবহারের পরিবর্তে :tabnআপনার ব্যবহার করা উচিত:buffer
পেরেরা

5

আমি সম্প্রতি আরও নমনীয় হয়ে গেছি।

সাইফার বাফারগুলিতে আমি ব্যবহার করি ]bএবং [bঅপরিশোধিত থেকে: https://github.com/tpope/vim-unimpaired

সরাসরি খোলার বাফারে ঝাঁপিয়ে পড়তে কেবল ভিমের ট্যাব সমাপ্তি ব্যবহার করুন :b। কোনও ট্যাব বা দুটি দিয়ে যে কোনও খোলা বাফার পেতে বেশ কয়েকটি অক্ষরই যথেষ্ট।

তেমনি বাফারগুলি খোলার জন্য আমি :eআপেক্ষিক পাথ এবং ট্যাব সম্পূর্ণ সহ ব্যবহার করি ।

আমি :lsকী মাঝে বাফারগুলি খুলি তা দেখতে (এবং তাদের পরিবর্তিত স্থিতি পরীক্ষা করতে) মাঝে মাঝে ব্যবহার করি।

বাফার থেকে মুক্তি পেতে আমি ব্যবহার করি rid :bw বাফারটি মুছতে । আমি সাধারণত একটি অস্থায়ী বিভক্ত করি এবং আমার লেআউটটি সংরক্ষণের জন্য বাফারগুলি পরিবর্তন করি যদিও :bwসক্রিয় উইন্ডোটি বন্ধ করে দেয়।

আমি যে সকল মিনিবুফ চেষ্টা করেছি সেগুলি কেবল আমার বিরক্তি প্রকাশ করেছিল এবং আমি চাই না যে আমার জন্য স্মার্ট মেলানো কোনও জিনিস খোলার জন্য এলোমেলো ফাইল খুলবে। আমার যদি সত্যিই আমি NERDtree ব্যবহার করি তার জন্য ব্রাউজ করার দরকার হয় (:e . ) ।

আইডি কে, ইদানীং আমি ইয়ানক্রিংকেও বাদ দিয়েছি (কারণ এটি স্ক্রু আপ xp) এবং রেজিস্টারগুলি ব্যবহার করা শুরু করেছিলাম এবং আমি সম্প্রতি সিদ্ধান্ত নিয়েছি f/ tআন্দোলনগুলি এখন পর্যন্ত সবচেয়ে বড় জিনিস ...


এই সব মহান পরামর্শ। আমি ম্যাপ <leader>llথেকে :ls। এছাড়াও set wildmenuআপনার নিজের .vimrcমতো করে আছে তা নিশ্চিত করে নেওয়া সত্যিই দরকারী আপনি একটি ছোট মেনু পাবেন যা সমস্ত বিকল্পের সাথে আসে:b
icc97

2

চমৎকার বাফার এক্সপ্লোরার , এমন শক্তিশালী পেশী স্মৃতি হয়ে উঠেছে যে আমি নিজেকে অন্য অ্যাপ্লিকেশনগুলিতে এটি ব্যবহার করতে পারব বলে মনে করি। সক্রিয়ভাবে দুটিরও বেশি ফাইল সম্পাদনা করার সময় আমি এটি অত্যন্ত দ্রুত বলে মনে করি।


2

আমি এইচটিএমএল :: ম্যাসন প্রকল্পের সাথে কাজ করার জন্য আমার .vimrc তৈরি করতে বেশ কিছুক্ষণ ব্যয় করেছি, তাই আমার কাছে ট্যাব এবং বিভক্ত উইন্ডোগুলির একটি বিজোড় মিশ্রণ রয়েছে। আপনার দেখার উপভোগের জন্য:

map ;o :Sex <CR>
map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-l> <C-W>l
map <C-h> <C-W>h
map ;] :tabnext<CR>
map ;[ :tabprev<CR>
map <C-t> :tabe +"browse ."<CR>
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>

2

আমি tselectbuffer ব্যবহার । এটি সত্যই দ্রুত এবং বুফ এক্সপ্লোরারের বিপরীতে আপনার উইন্ডোতে স্থান নেয় না। এটিতে একটি বর্ধিত অনুসন্ধানও রয়েছে I


পয়েন্টারের জন্য ধন্যবাদ, এখন আমি উভয় ব্যবহার করি। BufExplorer ডিফল্ট-হয় ,be, ,bs, ,bv, তাই আমি TSelectBuffer ম্যাপ ,bb
ব্র্যাডি ট্রেইনার

2

আমি ব্যবহার করি বাফারগুলির তালিকা এবং স্যুইচ করতে:

nnoremap <Leader>l :ls<CR>:b<space>

বাফারগুলির মধ্যে স্যুইচ করতে:

map <Leader>n :bn<CR>
map <Leader>p :bp<CR>

2

আমি ম্যাপ করেছি <S-J>এবং <S-K>তাতে :bpএবং :bn, যদিও আমি স্বীকার করি যে আমি ফাইলের সংখ্যা 10 এর চেয়ে বেশি হওয়ায় এটি ব্যবহার করি না I আমি তখন ম্যাপ করেছি <C-J>এবং <C-K>জিনোম টার্মিনালের আগের এবং পরবর্তী ট্যাবগুলিতে রেখেছি এবং আমি প্রতিটির জন্য সাধারণত 4 টি ভিএম চালনা করি 4 টি বিভিন্ন প্রকল্পে আমি কাজ করি। আমি এখনও সত্যই চাই যে পরবর্তী এবং পূর্বের বাফারটি আমি যে বাফারগুলির সাথে কাজ করছি তার ইতিহাসে যেতে হবে, এবং তিনি বাফার তালিকার অর্ডার নয়।


2

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


0

আমি সহজ ব্যবহার করি: sp ডাব্লু + ডাব্লু / ডাব্লু + আর এবং সিটিআরএল + অল্ট + পিজিইউপি / পিজিডাউন কী সংমিশ্রণগুলির সাথে ট্যাবনিউ দিয়ে vsplit।


4
জাথ্রুস এখানে যা বলেছিল তাতে আমার একমত হতে হবে । ভিমের ট্যাবগুলি (বা বিষয়টি সম্পর্কিত ইমবার্সের সাথে ট্যাববারগুলি) কেবল সাধারণ ট্যাবড ইন্টারফেসের মতো কাজ করে না।
আলেক্সি রোমানভ

0

যখন কোনও ভিম ​​সেশনে বেশ কয়েকটি বাফার খোলা থাকে, তখন বাফারগুলি এবং তাদের নিজ নিজ বাফার সংখ্যার উপর নজর রাখা কঠিন হয়ে উঠতে পারে। যদি এটি হয় তবে সাধারণ মানচিত্র ব্যবহার করে একটি ভিন্ন ফাইলে স্যুইচ করা সহজ করা যায়:

: ন্যানোর্যাপ (এফ 5): বাফারস (সিআর): বাফার (স্পেস)

vim.wikia.com

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