Masalah dengan ctags+VIM
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 16:41:54
0
2
720

Selepas menjana dengan ctags -R, anda mesti melaksanakan set tags=..../tags secara manual setiap kali anda memasukkan penyuntingan VIM. Saya memikirkan cara untuk menggunakan ctags -f untuk meletakkan fail tag di tempat yang ditentukan, dan kemudian menetapkan set tags=.... dalam vimrc Akhirnya, saya mendapati bahawa fail tag memang boleh ditemui, tetapi apabila melompat, ia berdasarkan fail tag Ia datang dari direktori akar, bukan direktori akar projek Adakah terdapat sebarang cara untuk mengelak daripada menetapkan tag setiap kali?

过去多啦不再A梦
过去多啦不再A梦

membalas semua(2)
某草草

Anda hanya perlu menentukan laluan fail yang dijana semasa melaksanakan arahan ctags.

Ini adalah cara saya menetapkan pilihan tags:

set tags+=./../tags,./../../tags,./../../../tags

Dengan cara ini, jika anda tidak terlalu mendalami projek ini, anda sentiasa boleh mencari fail tag projek ini.

PS: pemalam taglist dan tagbar sangat berguna =w=

Peter_Zhu

Selain menetapkan " set tags+=./../tags,./../../tags,./../../../tags, anda boleh mencuba kaedah berikut (Sebagai contoh, jika teg kernel terlalu besar, sebaiknya jangan memuatkannya secara automatik, jadi ini tidak disyorkan apabila projek itu sangat besar) " set tags+=./../tags,./../../tags,./../../../tags外,可以尝试下面的方法(例如内核的tags实在太大,最好不要自动载入,所以不推荐在项目特别大时这么做)

vim 自动上级目录查找递归加载ctags和cscope

原文在此,我增加了目录层数,以及加入了GTAGS(参考GNU golbal)

注意:我的函数里GTAGS的[pre-path] (参考:help cscope)是当前目录是:pwd

vim secara automatik mencari direktori peringkat atas dan memuatkan ctag dan cscope secara rekursif

Teks asal ada di sini, saya menambah bilangan tahap direktori dan menambah GTAGS (rujuk GNU golbal)
🎜Nota: [pra-laluan] GTAGS dalam fungsi saya (rujukan: help cscope) adalah hasil daripada direktori semasa ialah :pwd🎜 🎜
function! AutoLoadCTagsAndCScope()
    let max = 10
    let dir = './'
    let i = 0
    let break = 0
    while isdirectory(dir) && i < max
        if filereadable(dir . 'GTAGS')
            execute 'cs add ' . dir . 'GTAGS ' . glob("`pwd`")
            let break = 1
        endif
        if filereadable(dir . 'cscope.out')
            execute 'cs add ' . dir . 'cscope.out'
            let break = 1
        endif
        if filereadable(dir . 'tags')
            execute 'set tags =' . dir . 'tags'
            let break = 1
        endif
        if break == 1
            execute 'lcd ' . dir
            break
        endif
        let dir = dir . '../'
        let i = i + 1
    endwhile
endf
nmap <F7> :call AutoLoadCTagsAndCScope()<CR>
" call AutoLoadCTagsAndCScope()
" http://vifix.cn/blog/vim-auto-load-ctags-and-cscope.html
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan