এসটি 2 এর Ctrl+ এর নিকটতম সমতুল্য ("নিকটতম", "সঠিক" নয়) Pনামক একটি প্লাগইন, প্রস্তুত হোন … CtrlP । মত অন্যান্য অনুরূপ প্লাগিন হয় কমান্ড-টি বা FuzzyFinder ।
আমি সিটিআরএলপি ব্যবহার করি এবং আমি এটি পছন্দ করি তবে আমি "প্লাগইন-মুক্ত" যাওয়ার আপনার সিদ্ধান্তকে আন্তরিকভাবে সমর্থন করি। এটি যাওয়ার সহজতম উপায় নয় তবে এটি দীর্ঘমেয়াদে পরিশোধ করবে।
ফাইল খোলা হচ্ছে
ফাইল খোলার সর্বাধিক প্রাথমিক উপায় হ'ল :e /path/to/filename। ধন্যবাদ, আপনি ট্যাব-সমাপ্তি এবং ওয়াইল্ডকার্ডগুলি পেয়েছেন: ক্লাসিক *এবং একটি বিশেষ **, যা "কোনও উপ-ডিরেক্টরি" হিসাবে দাঁড়িয়েছে।
এর সবগুলিকে একত্রিত করে, আপনি এটি করতে পারেন:
:e **/*foo<Tab>
fooওয়ার্কিং ডিরেক্টরি বা তাদের নামে থাকা সমস্ত ফাইল থেকে চয়ন করতে :
:e **/*foo/*bar<Tab>
কার্যনির্বাহী ডিরেক্টরিতে যে কোনও জায়গায় এর নামের অন্তর্ভুক্ত যে কোনও উপ-ডিরেক্টরিতে barতাদের নামে থাকা সমস্ত ফাইল থেকে চয়ন করতে foo।
অবশ্যই, যে জন্য কাজ :tabe[dit], :sp[lit]এবং :vs[plit], অত্যধিক।
যদিও এই কমান্ডগুলি একটি ফাইলের মধ্যে সীমাবদ্ধ। :nextএকাধিক ফাইল খুলতে ব্যবহার করুন :
:next **/*.js
এবং একবার দেখুন :help arglist।
বাফারদের মধ্যে জাম্পিং
:b[uffer] বেসিক বাফার-স্যুইচিং কমান্ডটি:
:b4 " switch to buffer number 4
:bn " switch to next buffer in the buffer list
:bp " switch to previous buffer in the buffer list
:bf " switch to first buffer in the buffer list
:bl " switch to last buffer in the buffer list
:b foo<Tab> " switch by buffer name with tab-completion
:b# " switch to the alternate file
নোট করুন যে এই কমান্ডগুলির অনেকগুলি এবং তাদের আত্মীয়রা একটি গণনা গ্রহণ করে।
:lsকমান্ড আপনাকে লোড বাফার একটি তালিকা দেখায়। এটি কিছুটা "বিশেষ", যদিও: বাফারগুলি তৈরি করার সময় একটি নম্বর বরাদ্দ করা হয় যাতে আপনার একটি তালিকা থাকতে পারে যা দেখে মনে হয় 1 2 5আপনি বাফারগুলি মুছুন। এটি কিছুটা বিশ্রী, হ্যাঁ, এবং এটি তার সংখ্যা দ্বারা একটি বাফার এ স্যুইচ করা কিছুটা ঝামেলাজনক করে তোলে। আংশিক নাম, :b foo<Tab>বা সাইক্লিং দ্বারা স্যুইচিং পছন্দ :bn :bp।
যাইহোক, এখানে একটি দুর্দান্ত ম্যাপিং রয়েছে যা সমস্ত লোড হওয়া বাফারগুলি তালিকাভুক্ত করে এবং আপনার জন্য প্রম্পটকে জনপ্রিয় করে তোলে, আপনাকে বাফারের সংখ্যাটি টাইপ করার জন্য অপেক্ষা করে <enter>:
nnoremap gb :ls<CR>:b<Space>
এই ম্যাপিংয়ের সাথে অন্য একটি বাফারে স্যুইচ করা যতটা সহজ:
gb
(quickly scanning the list)
3<CR>
বা:
gb
(quickly scanning the list)
foo<tab><CR>
বৈমির ভিম ইনফোগ্রাফিক্সের সংগ্রহ থেকে নেওয়া এই চিত্রটি থেকে ধারণাটি এসেছে :

ভিমের কাছে <C-^>(বা <C-6>কিছু কিছু কীবোর্ডে) - :b#বর্তমান বাফার এবং পূর্ববর্তীটির মধ্যে লাফের সমান স্বাভাবিক মোড equivalent যদি আপনি প্রায়শই দুটি বাফারের মধ্যে বিকল্প হন তবে এটি ব্যবহার করুন।
ইন বাফার সম্পর্কে সমস্ত পড়ুন :help buffers।
ঘোষণায় যান
একটি ফাইলের মধ্যে, আপনি ব্যবহার করতে পারেন gdবা gD।
একটি প্রকল্পের মধ্যে, ভিমের "ট্যাগগুলি" বৈশিষ্ট্যটি আপনার বন্ধু তবে আপনাকে সিটি্যাগ বা সিস্কোপের মতো একটি বাহ্যিক কোড সূচক প্রয়োজন। সবচেয়ে মৌলিক কমান্ড হয় :tag fooএবং <C-]>একটি পদ্ধতি নামের উপর কার্সার সঙ্গে। উভয় টুলস ভাল তেজ একত্রিত করা হয়: দেখুন :help tags, :help ctagsএবং :help cscope।
এটির মূল্যের জন্য, আমি কোনও প্রকল্পের মধ্যে স্থানান্তরিত করতে ব্যাপকভাবে ট্যাগ নেভিগেশন ব্যবহার করি ( বেশিরভাগ ক্ষেত্রে সিটিআরএলপি :CtrlPTagএবং :CtrlPBufTagকমান্ড ব্যবহার করে) তবে এটি আমার প্রিয় "জেনেরিক" বাফার স্যুইচিং পদ্ধতিটি নাম হিসাবে রয়েছে switch
আপনার কনফিগার স্থাপন করা হচ্ছে
প্রচুর ভিম ব্যবহারকারী তাদের কনফিগারেশনটিকে সংস্করণ নিয়ন্ত্রণে রাখেন যা একটি নতুন মেশিনে আপনার নিজের কনফিগারটি ইনস্টল করা খুব দ্রুত এবং সহজ করে তোলে । চিন্তা করুন.
সম্পাদনা
কয়েক মাস আগে, আমাকে একটি পুরানো ভিম দিয়ে একটি রিমোট মেশিনে কাজ করতে হয়েছিল। আমি একটি যথাযথ Vim ইনস্টল করতে পারতাম এবং আমার নিজের প্রিয় কনফিগারটিকে ক্লোন করতে পারতাম তবে "করাতাকে তীক্ষ্ণ করার জন্য" আমি এবার হালকা ভ্রমণ করার সিদ্ধান্ত নিয়েছি। আমি দ্রুত একটি মিনিমালিস্ট তৈরি করেছি .vimrcএবং অর্ধেক ভুলে যাওয়া নেটিভ বৈশিষ্ট্যগুলির কয়েকটি পুনরায় ঘুরে দেখলাম । এই গিগের পরে, আমি সিদ্ধান্ত নিয়েছি যে সিটিআরএলপি প্রয়োজনীয়তা নয় এবং এ থেকে মুক্তি পেয়েছেন: নেটিভ বৈশিষ্ট্য এবং কাস্টম ম্যাপিংগুলি সেক্সি নয় তবে তারা অনেকটা নির্ভরতা ছাড়াই কাজটি সম্পন্ন করে।
ফাইল নিয়ে জাগল
set path=.,**
nnoremap <leader>f :find *
nnoremap <leader>s :sfind *
nnoremap <leader>v :vert sfind *
nnoremap <leader>t :tabfind *
:findআপনি set pathযথাযথভাবে তাড়াতাড়ি সত্যিই দুর্দান্ত কমান্ড । আমার সেটিংস সহ, বর্তমান ডিরেক্টরিতে অন্তর্ভুক্ত ,ffoo<Tab>সমস্ত ফাইল fooপুনরাবৃত্তভাবে খুঁজে পাবেন will এটি দ্রুত, স্বজ্ঞাত এবং হালকা ওজনের। অবশ্যই, আমি একই সমাপ্তি এবং ওয়াইল্ডকার্ড সহ :editএবং বন্ধুদের সাথে উপকৃত হয়েছি ।
প্রক্রিয়াটিকে আরও তাত্পর্যপূর্ণ করার জন্য, নিম্নলিখিত ম্যাপিংগুলি আমাকে প্রকল্পের পুরো অংশগুলি এড়িয়ে চলতে এবং বর্তমান ফাইলের ডিরেক্টরিতে পুনরাবৃত্তভাবে ফাইলগুলি সন্ধান করার অনুমতি দেয়:
nnoremap <leader>F :find <C-R>=expand('%:h').'/*'<CR>
nnoremap <leader>S :sfind <C-R>=expand('%:h').'/*'<CR>
nnoremap <leader>V :vert sfind <C-R>=expand('%:h').'/*'<CR>
nnoremap <leader>T :tabfind <C-R>=expand('%:h').'/*'<CR>
সতর্কবার্তা! pathবিকল্প অত্যন্ত শক্তিশালী। .,**উপরের মানটি আমার জন্য কাজ করে তবে আমি যে ভাষাগুলি ব্যবহার করি তার কোনও মানক গ্রন্থাগার নেই। সঠিক মান ওপর সম্পূর্ণভাবে নির্ভর করে আপনার চাহিদা।
বাফার নিয়ে জাগল
set wildcharm=<C-z>
nnoremap <leader>b :buffer <C-z><S-Tab>
nnoremap <leader>B :sbuffer <C-z><S-Tab>
উপরের ম্যাপিংগুলি শূন্য প্রম্প্ট সহ "ওয়াইল্ডম্যানু" তে উপলব্ধ বাফারগুলি তালিকাবদ্ধ করে আমাকে মেনুটি নেভিগেট করতে দেয় <Tab>বা কয়েকটি অক্ষর টাইপ করে <Tab>আবার তালিকাটি সঙ্কুচিত করতে দেয়। উপরের ফাইল ম্যাপিংয়ের মতো, প্রক্রিয়াটি দ্রুত এবং প্রায় ঘর্ষণ-কম।
nnoremap <PageUp> :bprevious<CR>
nnoremap <PageDown> :bnext<CR>
এই ম্যাপিংগুলি নিজের পক্ষে কথা বলে।
ট্যাগ সহ জাগল
nnoremap <leader>j :tjump /
এই ম্যাপিংটি পুরো শব্দ অনুসন্ধানের পরিবর্তে রেজেক্স অনুসন্ধান ব্যবহার করে যাতে আমি ,jba<Tab>ট্যাগ খুঁজে পেতে পারি foobarbaz()।
হ্যাঁ, अस्पष्ट মিলটি আসক্তিজনক তবে আপনি এটি ছাড়া ঠিক তেমন উত্পাদনশীল হতে পারেন। এবং ব্যয়ের একটি ভগ্নাংশের জন্য।
আরও সম্পাদনা করুন
কয়েকটি অতিরিক্ত টিপস / কৌশল ...
ওয়াইল্ডম্যানু বিকল্পগুলি
"ওয়াইল্ডম্যানু", এর সাথে সক্রিয় করা set wildmenu, ফাইল / বাফার নেভিগেশনকে আরও সহজ করে তোলে। এর আচরণটি গুছিয়ে নেওয়ার মতো বিকল্পগুলির দ্বারা পরিচালিত হয়:
wildmode আপনি কীভাবে "ওয়াইল্ডম্যানু" আচরণ করতে চান তা ভিমকে বলে:
set wildmode=list:full
wildignore সমস্ত ক্রাফ্ট ফিল্টার:
set wildignore=*.swp,*.bak
set wildignore+=*.pyc,*.class,*.sln,*.Master,*.csproj,*.csproj.user,*.cache,*.dll,*.pdb,*.min.*
set wildignore+=*/.git/**/*,*/.hg/**/*,*/.svn/**/*
set wildignore+=tags
set wildignore+=*.tar.*
wildignorecaseআপনাকে অনুসন্ধান fooএবং সন্ধান করতে দেয় Foo:
set wildignorecase
ফাইল চিহ্ন
augroup VIMRC
autocmd!
autocmd BufLeave *.css normal! mC
autocmd BufLeave *.html normal! mH
autocmd BufLeave *.js normal! mJ
autocmd BufLeave *.php normal! mP
augroup END
আমি সম্প্রতি এই রত্নটি অন্য কারও মধ্যে পেয়েছি ~/.vimrc। এটি যখনই আপনি বাফারটি ছেড়ে যান তখন কার্সারের ঠিক অবস্থানে একটি ফাইল চিহ্ন তৈরি করে যাতে আপনি যেখানেই থাকুন না কেন 'Jআপনি সম্পাদিত সর্বশেষ জাভাস্ক্রিপ্ট বাফারে ঝাঁপিয়ে পড়ে। অসাধারণ.