ফাইল ইতিহাসে বিশ্বস্তভাবে পিছনে পিছনে যাওয়ার কোনও উপায় আছে কি?


15

আমি কেবল শেষ এবং পরবর্তী ধরণের এমআরইউ প্লাগইনগুলির মতো সম্পাদিত ফাইলটিতে যেতে চাই।

:bnextএবং :bprevকখনও কখনও কাজ করে তবে বেশিরভাগ ক্ষেত্রে আমি কেবল কিছু অস্পষ্ট ফাইলের মধ্যেই শেষ করি না আমি সম্পাদনা মনে করি না এবং এমআরইউ প্লাগইনে ফিরে যেতে বাধ্য হয়।

এটা ঠিক করার জন্য একটি উপায় আছে কি?

Ctrl-^দুটি শেষ ফাইলের মধ্যে অদলবদল। আরও বেশি কিছুতে নেভিগেট করার সর্বোত্তম উপায় কী?

আমি বুঝতে পারি এটি কৌশলপূর্ণ হতে পারে তবে আমি বর্তমানের :bn :bpআচরণের উন্নতি করতে পারে এমন কোনও কিছুতে সম্মত । আমি প্রায়শই যে বাফারগুলি দেখি তা পুরোপুরি জায়গার বাইরে। সম্ভবত এমন একটি প্লাগইন রয়েছে যা সাম্প্রতিক ফাইলগুলি ট্র্যাক করে রাখতে এবং হুক সরবরাহ করতে পারে যাতে আমি ম্যাপিংগুলি তৈরি করতে পারি?

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

Ctrl-O Ctrl-Iজোড়া লাগানোর মতো কিছু যা বর্তমান বাফারের চারপাশে ঝাঁপ না দিয়ে তত্ক্ষণাত্ ফাইলগুলি স্যুইচ করে। পছন্দ uএবং Uনেট থেকে বাছাই করুন:

   u    Change to recently-visited directory                 |netrw-u|
   U    Change to subsequently-visited directory             |netrw-U|

"আমি যে ফাইলটি সর্বশেষে সম্পাদনা করেছি" তার দ্বারা আপনি কী আক্ষরিক অর্থে "যে ফাইলটি আমি সম্প্রতি সম্পাদনা করেছিলাম" তা বোঝায়? বা আপনি কি ভিমের মধ্যে দেখা শেষেরটি বোঝাতে চেয়েছেন?
ধনী

2
যদি পরে থাকে তবে আমি সেখানে না পৌঁছানো পর্যন্ত ব্যক্তিগতভাবে আমি কেবল ম্যাশ Ctrl-O(বা কখনও কখনও Ctrl-T) করি।
সমৃদ্ধ

হ্যাঁ যে কি আমি খুব করি Ctrl-Oএবং Ctrl-I। এটি সম্পাদনা পয়েন্টগুলির মধ্যে লাফ দেয় এবং এটি প্রবাহকে ভেঙে দেয়। অ্যাক্সেসের জন্য আমি সমস্ত বাফারগুলির মধ্যে পিছনে যেতে চাই। প্লাগইনগুলি কীভাবে সাম্প্রতিক ফাইলগুলির একটি তালিকা প্রদর্শন করে? তারা কি তাদের অভ্যন্তরীণভাবে নজর রাখে?
বরখাস্ত

Ctrl-^দুটি শেষ ফাইলের মধ্যে অদলবদল। তবে আরও বেশি কিছুতে নেভিগেট করার সর্বোত্তম উপায় কী?
বরখাস্ত

অ্যাক্সেসের মাধ্যমে, এটি এখনও স্পষ্ট নয় যদি আপনি বোঝানো উইন্ডোটিতে সেগুলি কীভাবে খোলা, লেখা হয়েছিল, বা পরিবর্তিত হয়েছিল order Ctrl-O/Iউইন্ডো-নির্দিষ্ট fwiw হয়, যখন এমআরইউ সাধারণত বিশ্বব্যাপী। আপনি যদি সাম্প্রতিক অ্যাক্সেসের মাধ্যমে অর্ডার চান, আপনি একবার পিছনে ঝাঁপ দেওয়ার সাথে সাথে তালিকার ক্রম পরিবর্তন হয়, আরও জটিল জিনিস।
ম্যাট বোহেম

উত্তর:


7

বাফার পরিবর্তন না হওয়া অবধি আমার জন্য বারবার সিটিআরএল-ও-তে আঘাত করার জন্য আমি একটি ছোট ফাংশন লিখেছি।

আপনি এটি এখানে খুঁজে পেতে পারেন । আমি এটি সিটিআরএল-ইউ-তে ম্যাপ করেছি তবে আপনি চাইলে আপনি সিটিআরএল-ও ওভাররাইড করতে পারেন।

function! GoBackToRecentBuffer()
  let startName = bufname('%')
  while 1
    exe "normal! \<c-o>"
    let nowName = bufname('%')
    if nowName != startName
      break
    endif
  endwhile
endfunction

nnoremap <silent> <C-U> :call GoBackToRecentBuffer()<Enter>

আপনি সম্ভবত জন্য অনুরূপ কিছু লিখতে পারে <C-I>

সমস্যা:

  • পূর্বের কোনও বাফার না থাকলে আপনি সিটিআরএল-সি আঘাত না করা পর্যন্ত এটি নীরবে লুপিং অবিরত থাকবে!

সম্পর্কিত:

  • :jumps Tতিহাসিক অবস্থানগুলি তালিকাভুক্ত করে যা সিটিআরএল-ও ফিরে যাবে।
  • ভিমের ডিফল্ট সিটিআরএল-টি সিটিআরএল-ও ম্যাসেজ করার জন্য একটি ভাল বিকল্প, কারণ এটি মোটা দানাযুক্ত: এটি কেবল ট্যাগ জাম্পের মধ্য দিয়ে ফিরে যায়।

ভিএম মনে হয় কেবল সিআরটিএল- exposed এ প্রকাশিত এমআরইউ ফাইলের ইতিহাসের এক স্তর সরবরাহ করে ^ তবে আমি লক্ষ্য করেছি :kwbdযে কয়েকটি বাফার বন্ধ করার সময় , ভিম প্রত্যাশিত বিপরীত historicalতিহাসিক ক্রমে পূর্বের বাফারগুলিতে ফিরে যায়। সম্ভবত ভিমের একটি এমআরইউ তালিকা রয়েছে যা এটি আমাদের সাথে ভাগ করে নিচ্ছে না, বা এটি সিটিআরএল-ও অবস্থানের ইতিহাসের ( :jumps) ভিত্তিতে কোন বাফারটি পিছনে পড়বে তা বেছে নিয়েছে ।
জোয়েটউইল

1
বিকল্পভাবে, autocmd InsertLeave * normal mZবিশ্বব্যাপী চিহ্ন Z এ শেষ সম্পাদিত ফাইলটি মনে রাখবে । আপনি এটি দিয়ে ফিরে পেতে পারেন g'Z। // আমার কাছে আছে nmap <C-y> g'Zতবে আমি এখনও প্রায়শই Ctrl-U ব্যবহার করতে চাই।
জোয়েটউইল

6

আপনি :lsসমস্ত বাফার দেখানোর জন্য ব্যবহার করতে পারেন । উদাহরণ স্বরূপ:

:ls
  1      "vim.markdown"                 line 160
  2      "ext.markdown"                 line 0
  3 #    "~/to"                         line 1
  4 %a   "~/TODO"                       line 68

বাফারে ফিরে যেতে ext.markdown, ব্যবহার করুন :e +Nbuf, Nপ্রথম কলাম থেকে বাফার নম্বরটি কোথায় । উদাহরণস্বরূপ: :e +2buf

আপনি আরও ইন্টারঅ্যাকটিভ অভিজ্ঞতার জন্য একটি সাধারণ ফাংশন তৈরি করতে পারেন:

fun! ChooseBuf()
    redir => buffers
        silent ls
    redir end

    echo l:buffers
    let l:choice = input('Which one: ')
    execute ':edit +' . l:choice . 'buf'
endfun
command! ChooseBuf call ChooseBuf()
nnoremap <Leader>b :call ChooseBuf()<CR>

ব্যবহার করার পরে :ChooseBufবা <Leader>bআপনি সম্পাদনা করতে চান এমন বাফারের নম্বরটি টাইপ করতে পারেন।

এটি বেশ "অতি সম্প্রতি ব্যবহৃত" নয়, যেহেতু আদেশটি "সর্বাধিক খোলা" হয়েছে (এটি সম্ভবত এটিও কেন :bnext/ :bprevআপনার প্রত্যাশার মতো কাজ করে না)।


4

<C-6>আপনার যা প্রয়োজন তা হ'ল এটি আপনাকে বর্তমানের আগে খোলা পূর্ববর্তী বাফারে ফিরিয়ে নিয়ে যায়। এছাড়াও আছে :bprev& :bnextযা আপনি একই জন্য ব্যবহার করতে পারেন।


<C-6>খারাপ না তবে আমি দুটি বাফার পিছনে ঝাঁপিয়ে পড়তে এটি ব্যবহার করতে পারি না। bprevএবং bnextজাম্প ক্রম হয় না।
প্রেক্সোলিটিক

হ্যাঁ, আমি মনে করি না ইতিহাসের আরও গভীরভাবে যাওয়ার কোনও ভাল নেটিভ উপায় আছে। আপনাকে কিছু এমআরইউ প্লাগইন ব্যবহার করতে হবে, এমনকি সিটিআরএলপি-এর একটি রয়েছে, আরও কিছু থাকতে হবে
ধ্রুব সাগর

2
দ্রষ্টব্য: এটি না <C-6>, এটি <C-^>। অনেক টার্মিনাল এমুলেটরগুলিতে কোনও পার্থক্য নেই, কিছুতে (ওএস এক্স দিয়ে জাহাজীকরণ সহ) রয়েছে। পরবর্তী ক্ষেত্রে, Shiftকী ব্যবহার করা প্রয়োজন (কিওয়ার্টি লেআউট ধরে নিচ্ছি)।
tommcdo

@ টমমকডো আকর্ষণীয়, আমি অসক্সে আছি, তবে টার্মিনাল.এ্যাপের পরিবর্তে ইটার্ম ব্যবহার করব, এটি আমার জন্য একই কাজ করে। এটিতে শিফট কী লাগানো একটি বামার হবে।
ধ্রুব সাগর

এটি ভাবতে আসুন, এটি সম্ভবত এমন হতে পারে যে আমার ওএস সেই কী বাঁধাই করছে এবং এটি ভিমে প্রচার করছে না। আমার ওএস বন্ধ করা আবশ্যক!
tommcdo

2

আপনি :oldfilesসম্পাদিত ফাইলগুলির একটি তালিকা পেতে ব্যবহার করতে পারেন।

তালিকায় ফাইলের সাথে যুক্ত নম্বর থাকবে। একটি ফাইল বাছুন, নম্বরটি নোট করুন (14 বলুন) এবং এটি দিয়ে খুলুন:edit #<14

আপনি সেই ফাইলটিতে অন্যান্য কমান্ডও চালাতে পারেন বা একসাথে একাধিক ফাইল একটি আদেশে পাস করতে পারেন। এই এখানে আরও


1
অন্যান্য উত্তর লিঙ্কে আমাকে শিক্ষা:bro[wse] ol[dfiles][!]
স্টিভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.