2013-03-18 109 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