[問題] 請問vim與cscope.out位置的問題

看板Linux作者 (:))時間14年前 (2009/12/16 20:56), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
請教大家 我在 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

12/16 22:27, , 1F
可以試試看fnamemodify(PATH_DB_CSCOPE, ":h")
12/16 22:27, 1F

12/16 23:12, , 2F
謝謝p大的提示,問題已解決。
12/16 23:12, 2F
文章代碼(AID): #1BADZZ8d (Linux)