Ubuntu 18.04 Vim+Markdown

一、前言

markdown自然是好东西,之前一直用Typora,还是很不错的软件,实时显示,非常喜欢官方的Barfi主题。但是Typora的问题就是每次开有点慢,有时候公式渲染啥的也比较慢。虽然提供了很多便利,但感觉本身markdown也很便利了,还是喜欢自己控制更多的感觉吧。此外也希望自己更熟练使用vim,就还是搞了搞。

二、Vim插件

1.插件管理

Vundle让插件管理变得清晰智能。相关使用方法请参考大佬的链接,已经足够明确了。

https://github.com/yangyangwithgnu/use_vim_as_ide#2

值得一提的是use_vim_as_ide中介绍很多vim的插件和配置,即使有的不需要使用,但是整个学习下来对vim的配置和使用都能加深了解。我自己还是使用系统自带的简化vim而已,毕竟还是新手上路。

2.vim-instant-markdown

vim-instant-markdown便是我们要用的插件,同意的可以参照use_vim_as_ide中关于markdown的介绍,有几个问题是:

  • 我的vim并没有集成ruby功能,:echo has('ruby')的结果是0,但是插件仍然可以用,查阅网上教程也没有对vim做太多要求
  • 作者的系统是openSUSE,当然这并不影响,pygments.rbredcarpet可以用apt-cache search名令查看相应信息,不是很明白是否需要我还是安了

再看看其他的教程以及插件作者的说明,自己实操了一下,大概需要以下几步:

  1. nodejs 和 npm
    ubuntu应该是自带nodejs的,但是没有npm。一般的教程是添加nodejsppa进行安装,但是我试了以下那个ppa找不到文件,也不是很明白。直接自己
$ sudo apt install npm

然后安插件的Github说明

$ sudo npm -g install instant-markdown-d

如上所说,顺便也安装了pygments.rbredcarpet

$ sudo apt install ruby-pygments.rb
$ sudo apt install ruby-redcarpet
  1. 插件安装
    如前所说,使用Vundle的办法。
  2. 配置
    ~/.vimrc中加插件的配置信息,说明的话仍参考原作者vim-instant-markdown,我主要加了这个,用来解析公式,别的因为刚开始使用还不是很清楚,后续可能补充
“ By default, no TeX code embedded within markdown would be rendered. 
“ This option uses MathJax and launches the node server as instant-markdown-d --mathjax.
let g:instant_markdown_mathjax = 1

至此vim打开.md文件,浏览器即会出现实时预览页面。

三、存在问题

虽然markdown大部分语法都可以显示,但是比较重要的像图片、数学公式都不大行,还好issue里面都提出并解决了,我只是搬过来整理一下。
1.图片
参考issue #63,通常当前路径用.表示,vim插件的话是/a/raw/b/,但是这样的话我原来的Typora就没法显示图片了,感觉不是很通用,但我还是试试。以及绝对路径似乎不行,不过用绝对路径其实挺傻的,Typora图片选取的方式不是很合我意,虽然好处也有。
2.math公式
即使上述在~/.vimrc中设置了也没法正常显示公式,好在可以参考issue #67,简单来说就是在/usr//local/lib/node_modules/instant-markdown-d/文件夹,修改index.html文件,在之间加入

 <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">script>                                                                         
  <script type="text/x-mathjax-config">                                         
    MathJax.Hub.Config({                                                        
      tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}                            
    });                                                                            
  script>

同时把原有代码的相关部分改成这样

socket.on('newContent', function(newHTML) {                                  
        document.querySelector(".markdown-body").innerHTML = newHTML;              
        MathJax.Hub.Queue(["Typeset", MathJax.Hub]);                                                
      });

亲测可用,目前体验已经差不多了,还是挺方便的。

3.TODO list
发现CSDN也没法显示,参考issue #135 ,但是这个和原来的用的是同一个github-markdown.css,好像不顶用。也无妨吧,就先- [ ]- [x]

四、感想

好像还是有些小问题,也不是所有语法都完美支持,但是也不搞什么花里胡哨的了,慢慢用再琢磨。总的还是不错的,Typora的一个问题就是语法不需要太符合标准,虽然是方便了,但有的东西就不好掌握。

另外vim还是很不错的,terminalvim一起,还是很不错的。不多为了更好的使用vim,还是有必要研究一下use_vim_as_ide,虽然我自己肯定用不到全部,毕竟我根本就不会C++。感受vim的大道至简~

你可能感兴趣的:(Ubuntu,Vim)