iamcco / markdown-preview.vim

⚠️ PLEASE USE https://github.com/iamcco/markdown-preview.nvim INSTEAD
792 stars 75 forks source link

能否把 s:serverStart() 和 s:serverClose() 变成全局命令? #17

Closed xgfone closed 8 years ago

xgfone commented 8 years ago

如果我有个文件的后缀名是 .txt,但内容是 Markdown,我想手动启动 Markdown Preview,但是 s:serverStart()s:serverClose()是不可见的,无法完成 Preview。

如果要想 Preview Markdown 的内容,该文件名必须是 *.{md,mkd,markdown,mdown,mkdn,mdwn}

如果 s:serverStart()s:serverClose() 是个全局命令,用户可以自由地 启动停止 Markdown Preview。

一个样例:

fu! StartMarkdownPreview()
    call s:serverStart()
endfu

fu! StopMarkdownPreview()
    call s:serverClose()
endfu

这样,用户就可以自定义快捷键,如:

nmap <F8> :call StartMarkdownPreview()<cr>
nmap <F9> :call StopMarkdownPreview()<cr>
iamcco commented 8 years ago

一开始没有让这两个函数全局可用是因为担心过多的全局函数,尽量少定义全局函数,也没有考虑到键位绑定和别的格式的文件的预览。现在更新了一下,增加 g:mkdp_command_for_global 配置选项,默认为0,就是 MarkdownPreview 命令只能用在 markdown 文件,如果设置为1,则任何文件都能用,并且增加支持键位绑定(插件默认没有任何按键绑定)。

在配置文件中增加按键绑定:

nmap <silent> <F8> <Plug>MarkdownPreview          " for normal mode
imap <silent> <F8> <Plug>MarkdownPreview          " for insert mode
nmap <silent> <F9> <Plug>StopMarkdownPreview      " for normal mode
imap <silent> <F9> <Plug>StopMarkdownPreview      " for insert mode

不管 g:mkdp_command_for_global 设置为何值,键位绑定总是有效可用的

xgfone commented 8 years ago

It works. +1