# 介紹
自己在使用vim進行`markdown`文件編輯的時候,雖然為vim安裝了`markdown`的預覽插件,并且配置了適合自己的vim編輯快捷按鈕,但是對于多個markdown文件組成的筆記,很難定位到需要編輯的文件,為了解決這個問題,在這里有下面這個流程來說實現。<br/>
1. 新建`SUMMARY.md`文件,該文件做為目錄文件,文件格式如如下:<br/>
```
* [run](run.md)
* [md使用](md使用/md使用.md)
* [md常用語法](md使用/md常用語法.md)
* [linux](linux/linux.md)
* [vim配置](linux/vim配置.md)
* [vim配置md文件跳轉](linux/vim配置md文件跳轉.md
```
2. 為markdown文件編輯時寫一個跳轉函數,并配置快捷鍵,實現在`SUMMARY.md`處選對應目錄行后調用函數,新建指定文件或者打開已經存在的文件進行修改,該功能實現如下所示:<br/>
```vim
func! Mdgoto()
"當只有當前編輯文件為 SUMMARY.md時才執行后面的內容
if expand('%:t') != 'SUMMARY.md'
return
endif
"獲取光標當前行的字符
let currentLine = getline(".")
”獲取光標當前行的字符的字符數
let len = strlen(currentLine)
"echo currentLine
"獲得當前行括號中的字符內容,做為對應的文件名
let a1= stridx(currentLine, '(') + 1
let a2= stridx(currentLine, ')') - 1
let a3 = a2-a1+1
if a3 > 0
let sub=strpart(currentLine,a1,a3)
endif
"打開這個文件,如果不存在文件則創建,否則直接打開編輯
exec "vsp " .sub
"調整打開后新文件的窗口占用屏幕大多數空間
vertical res +200
endfunction
"配置上述函數執行的快捷鍵為 ctrl+]
autocmd Filetype markdown map <C-]> :call Mdgoto()<CR>"
"配置編輯markdown文件是 Ctrl+q為保存當前文件并退出當前文件
autocmd Filetype markdown map <C-q> :wq<CR>"
```
**需要注意的是:** 上述快鍵鍵要能生效,首先你的文件一定要是`markdown`文件,其次函數要能執行,你的文件名一定要是`SUMMARY.md`,最后是你的`SUMMARY.md`文件必須是上面示例的格式,并且不能有空行出現,當空行出現時,我們同步到看云時,這個生成目錄為出現問題。<br/>
# 效果

<br/>

# 補充說明
剛開始的時候使用的是shell寫的`run`腳本讀取`SUMMAR.md`文件,根據文件內容在生成對應的markdown文件,這中方式使得我每次修改了`SUMMARY.md`文件后都要執行一次`run`腳本,所有不太方便。<br/>
而是用上面提到的方法,可以不在依賴額外的shell腳本,直接使用快捷鍵完成新建文件和打開已有的`markdown`文件,并且能夠實現從目錄文件跳轉到指定目錄的文件下進行編輯!