4

vimwikiの私のお気に入りの機能の1つは、リンクを処理する方法です。残念ながら、私はメインのメモを取るために他のもの(vimoutliner)を使用しており、vimwikiのようなリンク機能はどこにもありません。

* .wikiファイルだけでなく、任意のファイルを編集するときにvimwiki(または少なくとも同様のもの)のリンク機能を追加するプラグインはありますか?

4

1 に答える 1

7

次のような単純なユースケース用に1つ書くことができると思います。

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のコードを確認し、個人的な使用のためにいくつかのスニペットを「借用」することができます。

それがあなたを助けることを願っています..&幸運。

于 2013-03-18T18:39:18.240 に答える