كيف يكون لديك قائمة عازلة مختلفة لكل علامات تبويب في VIM؟

StackOverflow https://stackoverflow.com/questions/2308278

  •  22-09-2019
  •  | 
  •  

سؤال

هل من الممكن أن يكون نوعًا من "إرفاق" قائمة من المخازن المؤقتة إلى علامات تبويب معينة داخل VIM؟ أنا أستخدم حاليًا minibufferexplorer, ، والذي يظهر جميع المخازن المؤقتة في علامات التبويب الجميلة. يمكن دمجها باستخدام علامات تبويب VIM القياسية ولكن قائمة المخزن المؤقت للمكون الإضافي تحتوي على جميع المخازن المؤقتة واستخدام علامات التبويب تصبح غير مجدية قليلاً. إليك مثال على ما أود:

تحتوي علامة التبويب A على قائمة عازلة من:

  • ملف
  • fileb
  • Filec

يحتوي Tab B على قائمة مخزن المؤقت:

  • قدم
  • ملف
  • filef

حاليا ما لدي هذا:

تحتوي علامة التبويب A على قائمة مخزن مؤقت

  • ملف
  • fileb
  • Filec
  • قدم
  • ملف
  • filef

يحتوي Tab B على قائمة مخزن المؤقت:

  • ملف
  • fileb
  • Filec
  • قدم
  • ملف
  • filef

عند الحديث عن "قائمة المخزن المؤقت" ، أعني أن علامة التبويب تسرد المكون الإضافي MiniBuffer يعطيه.

أي حل بديل لتحقيق ذلك؟

هل كانت مفيدة؟

المحلول

لا أستطيع التفكير في أي مستكشفين مخزن المؤقت القائم على علامات التبويب ، لكن Vimscript لديها الكثير من الوظائف لتتبع المخازن المؤقتة (: هو قائمة الوظائف). أنا فقط طرقت هذا من أجل الجحيم منه. قد تنقلك إلى ما تريد. إنه يتبع فقط علامات التبويب في قاموس VIM. ستحتاج إلى تجسيد وظيفة: tabexplorer أو تصحيح القائمة التي تمت تصفيتها (أي. g: tabexplorer [tabpagenr ()])

احفظه كـ ~/.vim/plugin/tabexplorer.vim ومصدره عند بدء التشغيل.

let g:TabExplorer = {}

func! StoreBufTab()
    if !has_key(g:TabExplorer, tabpagenr())
        let  g:TabExplorer[tabpagenr()] = []
    endif

    if index(g:TabExplorer[tabpagenr()], bufname("%")) == -1 && bufname("%") != ""
        call add (g:TabExplorer[tabpagenr()],bufname("%"))
    endif
endfunc

func! DisplayTabExplorer()
    4split
    enew
    call append(".",g:TabExplorer[tabpagenr()])
endfunc

au BufEnter * call StoreBufTab()

command! TabExplorer call DisplayTabExplorer()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top