আমি প্রতি ফাইলটিতে একবার লাফ দেওয়ার জন্য জাম্পলিস্টটি কীভাবে ব্যবহার করব?


6

ভিমে নেভিগেট করার সময়, আমি প্রায়শই নিজেকে একটি ফাইলে ঝাঁপিয়ে পড়তে দেখি, সেই ফাইলটির চারপাশে ঝাঁপিয়ে পড়ে, আবার অন্য কোনও ফাইলে ওঠা যায়। অবশেষে, আমি মূল ফাইলটিতে ফিরে যেতে চাই। ব্যবহারটি <CTRL-O>কাজটি করে, তবে আমার চেয়ে অনেক বেশি প্রেস দরকার ses

আমি সচেতন যে আমি আগে থেকেই একটি চিহ্ন নির্ধারণ করতে পারি তবে আমি এমন একটি সমাধান চাই যাটির জন্য কোনও আপ-ফ্রন্ট চিন্তাভাবনা প্রয়োজন না।

আমি জাম্পলিস্টের মাধ্যমে ফিরে নেভিগেট করার জন্য একটি উপায় সন্ধান করছি, প্রতি ফাইলের জন্য ঠিক একবার থামছি।


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

উত্তর:


6

আমার বর্ধিত জম্পস প্লাগইনটিতে বর্তমান বা বিভিন্ন বাফারগুলিতে জাম্প সীমাবদ্ধ করতে <C-o>/ এর ম্যাপিংয়ের বিভিন্ন রূপ রয়েছে <C-i>

<Leader><CTRL-O>, <Leader><CTRL-I> অন্য বাফারে পুরানো / আরও নতুন কার্সারের অবস্থানে [গণনা] যান। বর্তমান বাফারের ভিতরে জাম্পগুলি বিবেচনা করা হয় না। সমস্ত স্থানীয় পজিশনে না গিয়ে পূর্বে পরিদর্শন করা বাফারগুলি স্মরণ করার জন্য দরকারী। জাম্পের দিক নির্বিশেষে, বাফারে একাধিক পরবর্তী জাম্প থাকলে বাফারে শেষ জাম্পের অবস্থানটি ব্যবহৃত হয়।


নিখুঁত, আমি ঠিক তাই খুঁজছি। ধন্যবাদ।
পল কেরি

1

আমার ঠিক একই সমস্যা ছিল এবং আমি দেখেছি যে এনহানসড জাম্প প্লাগইনটি বেশ বড় এবং এর চেয়েও বড় অবক্ষয়ের প্রয়োজন। আমি একটি ছোট ফাংশন লিখেছি যা বর্তমানের চেয়ে আলাদা বাফারে ঝাঁপিয়ে পড়ার <C-O>/ <C-I>প্রয়োজনীয় সংখ্যাকে গণনা করে । জাম্পলিস্টটি পরিষ্কার থাকে, এটিকে ম্যাপিং <leader><C-O>/<C-I>করে আমার প্রয়োজনকে ন্যূনতম উপায়ে ফিট করে।

  • <leader><C-O> জাম্পলিস্টে আগের বাফারের শেষ জাম্পে ঝাঁপ দেয়।
  • <leader><C-I> একই কাজ করে এবং জাম্পলিস্টে পরবর্তী বাফারে চলে আসে।
function! JumpToNextBufferInJumplist(dir) " 1=forward, -1=backward
    let jl = getjumplist() | let jumplist = jl[0] | let curjump = jl[1]
    let jumpcmdstr = a:dir > 0 ? '<C-O>' : '<C-I>'
    let jumpcmdchr = a:dir > 0 ? '^O' : '^I'    " <C-I> or <C-O>
    let searchrange = a:dir > 0 ? range(curjump+1,len(jumplist))
                              \ : range(curjump-1,0,-1)
    for i in searchrange
        if jumplist[i]["bufnr"] != bufnr('%')
            let n = (i - curjump) * a:dir
            echo "Executing ".jumpcmdstr." ".n." times."
            execute "silent normal! ".n.jumpcmdchr
            break
        endif
    endfor
endfunction
nnoremap <leader><C-O> :call JumpToNextBufferInJumplist(-1)<CR>
nnoremap <leader><C-I> :call JumpToNextBufferInJumplist( 1)<CR>

আসল সিটিআরএল + ও এবং সিটিআরএল + আই এর সাথে সিটিআরএল + ভি দ্বারা প্রতিস্থাপন করতে ^Oএবং ^Iলাইন 4 এ ভুলে যাবেন না । আমি জানি না কেন স্ট্রিংগুলি "<C-O>"এবং কমান্ড "<C-I>"কার্যকর করার সময় কাজ করে নি normal!


0

আমি আপনাকে ঠিক পেয়েছি কিনা তা নিশ্চিত নই। আপনি ফাইল / বাফারগুলির মধ্যে ঝাঁপ দিতে চান, জাম্পলিস্টে অবস্থান নয়। (যা একই ফাইলে অনেকগুলি অবস্থান থাকতে পারে)

তারপরে আপনি বাফার সম্পর্কিত কমান্ডগুলি পরীক্ষা করতে পারেন। যেমন

:ls        "list all buffers, Number, name
:b[N]      "switch to buffer N
:b <tab>   "after tab, buffer name auto-completion 

এবং এমন অনেক প্লাগইন রয়েছে যা আমাদের সহজে বাফারকে স্যুইচ করতে সহায়তা করে।


0

জাম্পলিস্টের উদ্দেশ্যটি আপনাকে বাফার থেকে বাফারে ঝাঁপিয়ে পড়াতে সহায়তা করা নয়: এটি আপনার করা সমস্ত জাম্পের গতি রেকর্ড করে। যেহেতু সাধারণ ভিআইএম ব্যবহারের ফলে বাফারগুলির মধ্যে এবং এর বাইরে প্রচুর লাফ থাকে, তাই এটি বাফারগুলির মধ্যে নেভিগেট করতে ব্যবহার করা ভুল হবে।

আপনি যদি কখনও জাম্পের গতি ব্যবহার না করেন তবে তা। তবে এটি আরও বড় ভুল হবে।

ভিমের বাফার তালিকা রয়েছে যা নামটি থেকে বোঝা যাচ্ছে যে আপনার সমস্ত বাফারগুলির একটি তালিকা এবং এটির নিজস্ব গুগল নেভিগেশন কমান্ড নিয়ে আসে with দুর্ভাগ্যক্রমে, এই তালিকাটি "স্থিতিশীল": আপনি তালিকার পূর্বের বাফারে নেভিগেট করতে পারেন তবে আগের অ্যাক্সেস করা বাফারে নয়। ভিম এমন তালিকা রাখে না।

আমি নাম সহ বাফার নেভিগেট। তবে জাম্পলিস্ট ফাইল করা এবং প্রথম বিভিন্ন বাফারে নেভিগেট করা এমন কোনও ফাংশন লিখতে সম্ভবত এটি সম্ভবপর। আমি এখনই এই ফোনে এটি করতে পারি না তবে আমি মনে করি এটি খুব বেশি শক্ত হবে hard

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