企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 介绍 自己在使用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/> # 效果 ![Image](https://img.kancloud.cn/af/0f/af0f8e5a7228cd09de6ecd7ad2f88569_674x724.png) <br/> ![Image](https://img.kancloud.cn/80/de/80de30301f2f29340ea2704c7aba4877_680x767.png) # 补充说明 刚开始的时候使用的是shell写的`run`脚本读取`SUMMAR.md`文件,根据文件内容在生成对应的markdown文件,这中方式使得我每次修改了`SUMMARY.md`文件后都要执行一次`run`脚本,所有不太方便。<br/> 而是用上面提到的方法,可以不在依赖额外的shell脚本,直接使用快捷键完成新建文件和打开已有的`markdown`文件,并且能够实现从目录文件跳转到指定目录的文件下进行编辑!