linux vim函数跳转,vim配置md文件跳转

# 介绍

自己在使用vim进行`markdown`文件编辑的时候,虽然为vim安装了`markdown`的预览插件,并且配置了适合自己的vim编辑快捷按钮,但是对于多个markdown文件组成的笔记,很难定位到需要编辑的文件,为了解决这个问题,在这里有下面这个流程来说实现。

1. 新建`SUMMARY.md`文件,该文件做为目录文件,文件格式如如下:

```

* [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`处选对应目录行后调用函数,新建指定文件或者打开已经存在的文件进行修改,该功能实现如下所示:

```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 :call Mdgoto()"

"配置编辑markdown文件是 Ctrl+q为保存当前文件并退出当前文件

autocmd Filetype markdown map :wq"

```

**需要注意的是:** 上述快键键要能生效,首先你的文件一定要是`markdown`文件,其次函数要能执行,你的文件名一定要是`SUMMARY.md`,最后是你的`SUMMARY.md`文件必须是上面示例的格式,并且不能有空行出现,当空行出现时,我们同步到看云时,这个生成目录为出现问题。

# 效果

![Image](https://img.kancloud.cn/af/0f/af0f8e5a7228cd09de6ecd7ad2f88569_674x724.png)

![Image](https://img.kancloud.cn/80/de/80de30301f2f29340ea2704c7aba4877_680x767.png)

# 补充说明

刚开始的时候使用的是shell写的`run`脚本读取`SUMMAR.md`文件,根据文件内容在生成对应的markdown文件,这中方式使得我每次修改了`SUMMARY.md`文件后都要执行一次`run`脚本,所有不太方便。

而是用上面提到的方法,可以不在依赖额外的shell脚本,直接使用快捷键完成新建文件和打开已有的`markdown`文件,并且能够实现从目录文件跳转到指定目录的文件下进行编辑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值