作者freakguy (:))
看板Linux
標題[問題] 請問vim與cscope.out位置的問題
時間Wed Dec 16 20:56:00 2009
請教大家
我在 linux/ 目錄下建立cscope.out
但我不一定每次編輯檔案都從 linux 目錄下開始
例如 我有可能位於 linux/drivers/mmc/card 下 vim block.c
此時 vim 並不會找到位於 linux 目錄下的cscope.out
於是 我必須手動下:cs add ../../../cscope.out ../../../
cscope資料庫才建立起來
為了解決這個問題,
我在 cscope_maps.vim 修改了
讓一開始會一直往上一層目錄找 cscope.out 檔案
摘錄如下
if has("cscope")
略
let PATH_DB_CSCOPE = findfile("cscope.out", ".;")
let DIR_DB_CSCOPE = finddir("linux", ".;")
" add any cscope database in current directory
if filereadable("cscope.out")
cs add cscope.out
" Searches from the directory of the current file upwards
elseif !(empty(PATH_DB_CSCOPE))
execute "cs add " . PATH_DB_CSCOPE . " " . DIR_DB_CSCOPE
" else add the database pointed to by environment variable
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
請問 我有辦法把 PATH_DB_CSCOPE 變數 濾掉檔案名cscope.out
存入 DIR_DB_CSCOPE 嗎? 查了一下 vim 好像沒有這樣功能的function
如果用shell 下的 dirname,又不知如何在vim script下呼叫
請問有什麼比較好的解法呢?
感謝看完這篇冗長文章的人
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.66.17.92
推 powentan:可以試試看fnamemodify(PATH_DB_CSCOPE, ":h") 12/16 22:27
→ freakguy:謝謝p大的提示,問題已解決。 12/16 23:12