vimwiki配置

插件

能开始使用的话,需要以下几个插件

  • Plugin ‘vimwiki/vimwiki’
  • Plugin ‘mattn/calendar-vim’

其中日历插件是用来显示日记的

如果需要实时预览markdown的话,还需要安装

  • Plugin ‘suan/vim-instant-markdown’

另外,之前的snipmate有冲突,使用以下几个

  • Plugin ‘MarcWeber/vim-addon-mw-utils’
  • Plugin ‘tomtom/tlib_vim’
  • Plugin ‘garbas/vim-snipmate’

配置

1
2
let g:vimwiki_list = [{'path': '~/Dropbox/vimwiki/',
'ext': '.markdown', 'syntax': 'markdown'}]

这一个设置项做了三件事,一是制定vimwiki的根目录,二是把vimwiki的后缀改成了markdown,三是使用markdown语法而不是维基语法

1
2
3
map <A-Space> <Plug>VimwikiToggleListItem
let g:vimwiki_table_mappings = 0
let g:vimwiki_global_ext = 0

这三个设置的意义分别是使用Alt+Space来开关待办任务的状态,关闭在插入表格时的Tab键映射, 最后一个的意思是只在根目录下面把markdown识别为vimwiki格式,在其他地方还是使用vim自己的markdown处理

1
2
let g:instant_markdown_autostart = 0 "disable autostart
map <leader>md :InstantMarkdownPreview<CR>

这两项是instand-markdown的设置,不自动开启,并且把映射键位改成<Leader>md

使用

基本上把帮助文件看一遍就知道了

参考

https://github.com/gotbletu/shownotes/blob/master/vimwiki.md

https://github.com/vimwiki/vimwiki/issues/95

https://github.com/carlhuda/janus/issues/479

Windows下vim-LaTeX和Pathogen的问题

很久都没有写博客了,不知道还有人看不。

很久以前,升级vim插件里的vim-LaTeX,突然发现Windows下无法编译任何的tex文件,反复报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Error detected while processing function Tex_RunLaTeX:
line 7:
E121: Undefined variable: s:target
E15: Invalid expression: s:target
line 10:
E121: Undefined variable: s:target
E116: Invalid arguments for function Tex_Debug
line 12:
E121: Undefined variable: s:target
E116: Invalid arguments for function Tex_GetVarValue('Tex_FormatDependency\_'.s:target) != ''
E15: Invalid expression: Tex_GetVarValue('Tex_FormatDependency_'.s:target) != ''
line 21:
E121: Undefined variable: dependency
E116: Invalid arguments for function Tex_Debug
line 25:
E121: Undefined variable: dependency
E116: Invalid arguments for function Tex_Strntok(dependency, ',', i) != ''
E15: Invalid expression: Tex_Strntok(dependency, ',', i) != ''
line 51:
E121: Undefined variable: initTarget
E15: Invalid expression: initTarget

然后也报错没有TCLevel这个命令,但是我在OSX下用是好的,所以就没管,只是没有在Windows下写TeX而已。

昨天才发现是这样的,不知道从哪个版本开始,vim-latex套件里面多了一个compiler文件夹,里面有一个tex.vim文件,按照官方的说法,这个文件夹应该是拷贝到你的vimfiles里面的。照理说pathogen应该是可以管理的,问题就在于Windows下,Vim的安装文件夹/compiler里面也有一个tex.vim,不知道是调用先后顺序还是怎样,Windows不会载入vim-latex里面的这个tex.vim,而是载入Vim自带的那个,所以……

解决方法就很简单了,把自带的那个tex.vim删了就行,一切变得正常

祝大家新年快乐!

Snipmate在Windows下和pathogen的兼容问题

今天在Windows台式机上写LaTeX的时候忽然发现怎么Snipmate不好使了,Tab键都要被按烂了居然还不能补全,但是OSX上用又是好的。

Google了各种关键字,都没有能直接解决问题的。StackOverflow和superuser上的问题更多的是关于如何载入自定义的代码段。

后来把Snipmate直接拷贝到Vim的安装文件夹下面,改名vimfiles,发现是可以用的,再结合googlecode上的一个issue,发现是snipmate/after这个文件夹pathogen没有载入,估计是不符合vim插件的通常结构。

于是解决方法很简单了,在.vimrc文件中加入

1
set runtime+=~/.vim/bundle/snipmate/after

因为我环境变量里面有$HOME,所以就可以用~来代替个人文件夹了

vimflowy: workflowy的vim实现

在很早一篇《像发微博一样做GTD》里面,我提到可以在Vim里面实现workflowy的功能。经过参考 Vimoutliner 和 VimOrganizer,我自己做了一个vim插件,可以实现workflowy的大部分功能。同时因为是基于纯文本的,随便扔一个网盘就可以同步了,移动设备上也可以方便的查看。

特点

  • 大纲列表,用缩进表示层级,TAB键可以切换展开/折叠
  • #和@关键字高亮和过滤
  • 标记完成功能

安装

项目主页在 http://www.github.com/laoyang945/vimflowy

安装只需要把文件拷贝到pathogen设定的插件目录即可

使用

用vim打开后缀为otl的文本文件后,插件就自动加载了。使用方法和workflowy基本相同,都是使用缩进来标记大纲层次,用冒号或者分号来标记补充内容。由于是基于vim的,对快捷键的支持当然是必须的

快捷键

  • [normal],,N(N=0~9): 所有条目展开到第N级,当N=0的时候表示全部展开
  • [normal],,dn: 标记当前节点及其所有子节点完成,并附加完成时间
  • [normal]zs: 显示所有含有光标下单词的条目(不包括补充内容)
  • [normal]zn: 和,,0的效果一样
  • [normal & insert],,d: 插入日期
  • [normal & insert],,t: 插入时间

截图

大纲,折叠,关键字和标记完成

文本过滤

欢迎各位Vimer和GTDer使用并提出意见和建议。

用markdown来写LaTeX

注:LaTeX+gVim+SumatraPDF设置这篇文章里最后_vimrc设置有修改,将pdflatex改为xelatex,以便方便的用在LaTeX里面使用中文。

自从用了markdown这个轻量级标记语言,我是觉得写东西的感觉顺畅了许多,再加上Vim这个超级好用的编辑器,想不写东西都难。慢慢的拾起自己的读书笔记吧。

现在的问题是,我的文献综述是在LaTeX下面写的,在排版的时候倒是很方便,基本不用我自己操心什么的,但是写作的时候感觉着实是不好,特别是在分章节、加粗体的时候,操作相当的“重”,我就想着能不能把markdown和LaTeX结合起来,公式什么的使用LaTeX,在输入的时候使用markdown的风格。

在Google上搜索了一番,还真的让我找到了pandoc这个软件,让人惊喜的是他居然还支持参考文献的引用和列表生成,那我所有的需求都可以满足了。如何使用请查阅pandoc的用户手册

现在我用markdown文件写文献综述或者文献笔记,用markdown+LaTeX的语法,通过pandoc把markdown文件转换为LaTeX文本(如果没有参考文献的需要可以直接把markdown转化为pdf)。

为了在markdown里面更好的区分LaTeX代码,需要修改一下Vim的markdown语法高亮文件,路径在vim73/syntax/markdown.vim,添加以下几行:

1
2
3
4
syn region markdownTexInline start="\$" end="\$" keepend oneline
syn region markdownTexBlock start="\\begin{.*}" end="\\end{.*}" keepend
hi def link markdownTexBlock Tag
hi def link markdownTexInline Tag

这样在markdown文件里面就可以高亮显示用LaTeX写的多数数学式子了,实在是太方便。

LaTeX+gVim多次编译设置

如果你是按照我前一篇文章设置的话,文章中有参考文献或者目录而需要多次反复编译的时候,可能会出问题,需要的东西没有显示出来。

解决方案是,修改Vim安装目录\vimfiles\ftplugin\latex-suite\texrc,将

1
TexLet g:Tex_MultipleCompileFormats = 'dvi'

修改为

1
TexLet g:Tex_MultipleCompileFormats = 'pdf,dvi'

即可对pdf格式的输出进行多次编译

LaTeX+gVim+SumatraPDF设置

【本文仅讨论windows平台下设置】

##一句话介绍:

##安装及下载:

##配置:

  • 将下载的vim-latex-vimfiles.tar.gz解压到c:\vim\vimfiles
  • 将sumatraPDF的安装路径和c:\vim\vim73加入环境变量
  • 修改c:\vim\_vimrc文件,添加如下几行:

    1
    2
    3
    4
    5
    6
    7
    8
    filetype plugin on
    set shellslash
    set grepprg=grep\ -nH\ $*
    filetype indent on
    let g:tex_flavor='latex'
    let g:Tex_DefaultTargetFormat = 'pdf'
    let g:Tex_ViewRule_pdf = 'SumatraPDF -reuse-instance -inverse-search "gvim -c \":RemoteOpen +\%l \%f\""'
    let g:Tex_CompileRule_pdf = 'xelatex --synctex=-1 -src-specials -interaction=nonstopmode $*'
  • 将补丁解压到c:\vim\vimfiles\ftplugin\latex-suite,覆盖compiler.vim文件

OK,大功告成了,至于如何使用LaTeX写论文请待下一篇文章