ভিম: ট্যাবলাইনে ট্যাবগুলির সূচি প্রদর্শন করুন


8

যাক আমি খোলা file1.txt, file2.txt, file3a.txtএবং file3b.txtযেমন যে tabline (উপরে জিনিস) এই মত দেখায়:

file1.txt  file2.txt  2 file3a.txt

(দ্রষ্টব্য কীভাবে file3b.txt.অনুপস্থিত কারণ এটি একই বিভাজনে, একই ট্যাবে প্রদর্শিত হয়েছে file3a.txt)

ট্যাবগুলির (আরও <Number>gt) এর মধ্যে আরও দ্রুত স্থানান্তরিত করতে , আমি প্রতিটি ট্যাব ফাইলের নাম সহ এটির সূচক প্রদর্শন করতে চাই। তাই ভালো:

1:<file1.txt>  2:<file2.txt>  3:<2 file3a.txt>

বিন্যাস (বিশেষত কোণ ধনুর্বন্ধনী) alচ্ছিক; আমি শুধু ইনডেক্স (সেখানে উপস্থিত হতে চান 1:, 2:এবং তাই)।

কোন সংকেত সনাক্ত করুন :h tab-page-commandsবা সবটা google।


1
আপডেট: এই প্লাগইনটি সহায়ক হতে পারে। আমি মনে করি এই প্রশ্নের উত্তর দেওয়ার পরে এটি অনেক বেশি তৈরি হয়েছিল যাতে এটি কোনও উত্তরে উপস্থিত হয় না।
ক্রাইজিউল্ফ

উত্তর:


0

আপনার এটি দেখতে হবে:

:help 'tabline'
:help setting-tabline

এবং যদি আপনার 'গিওপশনস' সেটিংসে "ই" থাকে:

:help 'guitablabel'

এটি আমাকে সঠিক পথে পেয়েছে। অনেক ধন্যবাদ!
বিটমাস্ক

9
@ বিটমাস্ক আপনার সম্ভবত সমাধান দিতে পারে? হেপাটাইতে, আপনি কি নিজের উত্তরটি সংশোধন করতে পারবেন?
wmarbut

@ ওমারবাট এই প্লাগইনটি ব্যবহার করুন , এটি দুর্দান্ত।
ospider

একমত। সমাধানটি দৃশ্যত "খুঁজে পাওয়া" পাওয়া গেলেও সরবরাহ করা হয় নি এবং চূড়ান্তভাবে হতাশার সাথে প্রত্যেককে ডক্সের মাধ্যমে খনন করতে এবং একই কনফিগারগুলিতে লেখার জন্য একই পরিমাণে ব্যয় করতে হয়।
অ্যালেক্স এইচ

12

আপনার vimrc এ এটি রাখুন

" Rename tabs to show tab number.
" (Based on http://stackoverflow.com/questions/5927952/whats-implementation-of-vims-default-tabline-function)
if exists("+showtabline")
    function! MyTabLine()
        let s = ''
        let wn = ''
        let t = tabpagenr()
        let i = 1
        while i <= tabpagenr('$')
            let buflist = tabpagebuflist(i)
            let winnr = tabpagewinnr(i)
            let s .= '%' . i . 'T'
            let s .= (i == t ? '%1*' : '%2*')
            let s .= ' '
            let wn = tabpagewinnr(i,'$')

            let s .= '%#TabNum#'
            let s .= i
            " let s .= '%*'
            let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
            let bufnr = buflist[winnr - 1]
            let file = bufname(bufnr)
            let buftype = getbufvar(bufnr, 'buftype')
            if buftype == 'nofile'
                if file =~ '\/.'
                    let file = substitute(file, '.*\/\ze.', '', '')
                endif
            else
                let file = fnamemodify(file, ':p:t')
            endif
            if file == ''
                let file = '[No Name]'
            endif
            let s .= ' ' . file . ' '
            let i = i + 1
        endwhile
        let s .= '%T%#TabLineFill#%='
        let s .= (tabpagenr('$') > 1 ? '%999XX' : 'X')
        return s
    endfunction
    set stal=2
    set tabline=%!MyTabLine()
    set showtabline=1
    highlight link TabNum Special
endif

2
আপনি '%999XX'এখানে কি মানে জানেন ?
বাচ

যেহেতু এটি টার্মিনাল এবং জিভিএম উভয়ের পক্ষে কাজ করে, আমি মনে করি এটির সেরা সমাধান। আমার আপভোট নিন স্যার।
13:38

5

উপর উইকিয়া পৃষ্ঠা অন্তত দুটি (বেশী আমি পরীক্ষিত) আপনি ট্যাব সূচকের দিতে হতে পারে, এবং তাদের মধ্যে একজন প্রতিটি বাফার সম্পাদনাগুলি যা ভিতরে জানালার সংখ্যা উৎপন্ন হয়।

সম্পাদিত বাফারগুলির গণনা তৈরি করে এমন একটিতে আমার সংশোধনীর ফলাফল এখানে রয়েছে, আমি যে পরিবর্তনটি করেছি তা হ'ল কাউন্টের হাইলাইট মানটিকে বাকী ট্যাবের সাথে সামঞ্জস্য করা:

এখানে চিত্র বর্ণনা লিখুন

set tabline=%!MyTabLine()  " custom tab pages line
function MyTabLine()
        let s = '' " complete tabline goes here
        " loop through each tab page
        for t in range(tabpagenr('$'))
                " set highlight
                if t + 1 == tabpagenr()
                        let s .= '%#TabLineSel#'
                else
                        let s .= '%#TabLine#'
                endif
                " set the tab page number (for mouse clicks)
                let s .= '%' . (t + 1) . 'T'
                let s .= ' '
                " set page number string
                let s .= t + 1 . ' '
                " get buffer names and statuses
                let n = ''      "temp string for buffer names while we loop and check buftype
                let m = 0       " &modified counter
                let bc = len(tabpagebuflist(t + 1))     "counter to avoid last ' '
                " loop through each buffer in a tab
                for b in tabpagebuflist(t + 1)
                        " buffer types: quickfix gets a [Q], help gets [H]{base fname}
                        " others get 1dir/2dir/3dir/fname shortened to 1/2/3/fname
                        if getbufvar( b, "&buftype" ) == 'help'
                                let n .= '[H]' . fnamemodify( bufname(b), ':t:s/.txt$//' )
                        elseif getbufvar( b, "&buftype" ) == 'quickfix'
                                let n .= '[Q]'
                        else
                                let n .= pathshorten(bufname(b))
                        endif
                        " check and ++ tab's &modified count
                        if getbufvar( b, "&modified" )
                                let m += 1
                        endif
                        " no final ' ' added...formatting looks better done later
                        if bc > 1
                                let n .= ' '
                        endif
                        let bc -= 1
                endfor
                " add modified label [n+] where n pages in tab are modified
                if m > 0
                        let s .= '[' . m . '+]'
                endif
                " select the highlighting for the buffer names
                " my default highlighting only underlines the active tab
                " buffer names.
                if t + 1 == tabpagenr()
                        let s .= '%#TabLineSel#'
                else
                        let s .= '%#TabLine#'
                endif
                " add buffer names
                if n == ''
                        let s.= '[New]'
                else
                        let s .= n
                endif
                " switch to no underlining and add final space to buffer list
                let s .= ' '
        endfor
        " after the last tab fill with TabLineFill and reset tab page nr
        let s .= '%#TabLineFill#%T'
        " right-align the label to close the current tab page
        if tabpagenr('$') > 1
                let s .= '%=%#TabLineFill#%999Xclose'
        endif
        return s
endfunction

আপনার স্ক্রিপ্টটি অন্যটির চেয়ে ভাল কারণ এটি ফাইলটি সম্পাদনা করা হয়েছে কিনা তা ট্যাবটি যে অংশটি দেখায় সেই অংশটি ধরে রাখে। ধন্যবাদ!
প্লাস্টি গ্রোভ

হ্যাঁ, আমি airlineপ্লাগইন থেকে ট্যাবলাইনটি ব্যবহার করছি , তবে সত্যি বলতে কী, এই পুরাতন ট্যাবলাইনটি আমি নিয়ে এসেছি এটি অনেক বেশি কার্যকরী ...
স্টিভেন লু

3

Tabline প্লাগইন হয় একটি তেজ প্লাগইন যে কার্যকরী কার্যকারিতা অনুরোধ এবং আপনার vimrc গাট্টা আউট করা হবে না। কেবল ইনস্টল করুন, এবং ভিএম পুনরায় চালু করুন।

স্থাপন করা:

cd /usr/share/vim/vimfiles/plugin/
wget https://raw.githubusercontent.com/mkitt/tabline.vim/master/plugin/tabline.vim

অথবা একটি প্লাগইন পরিচালক ব্যবহার করুন।


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

0

জিইউআই-ভিত্তিক ভিমের জন্য (লিনাক্সে জিভিম, ম্যাকের উপর ম্যাকভিম ইত্যাদি) আপনার এটিতে রাখুন .gvimrc:

set guitablabel=%N:%M%t " Show tab numbers

প্রকৃতপক্ষে প্রদর্শিত সংখ্যাগুলি ব্যবহার করার বিষয়ে কিছু টিপস:

  • Ngtট্যাবে স্যুইচ করবে N। উদাহরণস্বরূপ, 3gtট্যাব 3 এ যায়।
  • :tabm2বর্তমান ট্যাবটি ট্যাব 2 এর পরে উপস্থিত হতে সরায় ।
    • এই ট্যাবটিকে প্রথম অবস্থানে নিয়ে যেতে, ব্যবহার করুন :tabm0
    • এই ট্যাবটি শেষ অবস্থানে নিয়ে যেতে, কেবল ব্যবহার করুন :tabm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.