2013-03-18 79 views
3

vimwiki我最喜欢的功能之一是它处理链接的方式。不幸的是,我使用别的东西(vimoutliner)作为我的主要笔记,并且它没有任何地方靠近vimwiki所具有的链接功能。没有vimwiki的vimwiki样式的链接?

是否有插件在编辑任何任意文件时添加vimwiki的链接功能(或至少是类似的),而不仅仅是* .wiki文件?

回答

6

我想你可以只写一个为您简单的用例,是这样的:

function! LinkForward() 
    let g:fromFile=expand('%:p') 
    let fn= substitute(getline('.'),'^.*\[\[\([^\]]*\)\].*$',"\\1",'g') 
    execute "e ".fn 
endfunction 

nnoremap <cr> :call LinkForward()<cr> 

function! LinkBackward() 
    execute "e ".g:fromFile 
endf 

nnoremap <bs> :call LinkBackward()<cr> 

源,这将做一些similiar行动,如按Enter[[path/to/file/foo]]foo会去那个foo文件,内按<Backspace>的文件会让你回来。

note 上面的代码只是示例,它不会工作完美。例如:

  • 添加一个列表/(堆栈)来存储文件跳转历史记录。
  • 定义这样的动作仅适用于某些文件类型
  • 检查,如果下光标行不匹配[[...]]然后做正常<Enter>
  • 等等。如果你喜欢,你可以看看vimwiki的代码和“借用“一些片段以供个人使用。

希望它可以帮助你.. &祝你好运。

+0

谢谢,这是一个非常好的开始。 – Chris 2013-03-18 19:57:45