4

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

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

4

1 回答 1

7

我认为您可以为您的简单用例编写一个,例如:

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>

source 这将执行一些类似的操作,例如按下Enter[[path/to/file/foo]]foo转到该foo文件,并且在该文件中按下<Backspace>将使您返回。

请注意,上面的代码只是示例,它不会完美运行。你可以让它更好地工作,例如:

  • 添加一个列表/(堆栈)来存储文件跳转历史。
  • 定义这种操作仅适用于某些文件类型
  • 检查光标下的行是否不匹配[[...]]然后正常<Enter>
  • 等等..如果您愿意,可以查看 vimwiki 的代码并“借用”一些片段供您个人使用。

希望它对你有帮助.. 祝你好运。

于 2013-03-18T18:39:18.240 回答