没有使用vimwiki如何实现vimwiki风格的链接?

4
我最喜欢的vimwiki功能之一是它处理链接的方式。不幸的是,我使用其他东西(vimoutliner)来进行主要的笔记记录,它没有像vimwiki那样强大的链接功能。
是否有插件可以在编辑任意文件时添加类似于vimwiki的链接功能(或至少相似的功能)而不仅仅是*.wiki文件?
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>

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

请注意,上面的代码仅是示例,不会完美运行。 您可以使其更好地工作,例如:

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

希望它能帮助您..祝您好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接