8a50d022b1
Problem: - follow_link failed with header with number at the end - VimwikiGenerateTagLinks did not replace the __FileExtension__ Solution: - follow_link try first 1 time with suffix number n and then n times without - VimwikiGenerateTagLinks replace the __FileExtension__
387 lines
6.4 KiB
Plaintext
387 lines
6.4 KiB
Plaintext
# Link internal to a file
|
|
#
|
|
# See: generate_toc.vim
|
|
#
|
|
# See issue #666 for anchor support (then internal links)
|
|
# Preambule set file onces and for all {{{1
|
|
# Otherwise the bash script is freezing
|
|
|
|
|
|
|
|
|
|
Given vimwiki (a):
|
|
a
|
|
|
|
Execute (Set filename wiki_test.md):
|
|
file wiki_test.md
|
|
|
|
Expect (a):
|
|
a
|
|
|
|
|
|
Given vimwiki (VimwikiTOC with link and number {{{1):
|
|
[link1](#i-v-p-741528)
|
|
[link2](#i-v-p-741528-2)
|
|
|
|
# I [V p](h) (7.415.28)
|
|
|
|
# I [V p](h) 741.528
|
|
|
|
Execute (Set syntax markdown):
|
|
call SetSyntax('markdown')
|
|
|
|
Do (Enter link):
|
|
gg\<Cr>
|
|
A__HERE1__\<Esc>
|
|
ggj\<Cr>
|
|
A__HERE2__\<Esc>
|
|
|
|
Expect():
|
|
[link1](#i-v-p-741528)
|
|
[link2](#i-v-p-741528-2)
|
|
|
|
# I [V p](h) (7.415.28)__HERE1__
|
|
|
|
# I [V p](h) 741.528__HERE2__
|
|
|
|
Given vimwiki (VimwikiTOC is broken against headers with link #182 {{{1):
|
|
[A link B](#a-link-b)
|
|
[tlink](#tlink)
|
|
[7.4.1528](#741528)
|
|
[link (333)](#link-333)
|
|
|
|
# A [link](anything here) B
|
|
|
|
# t[link](anything here)
|
|
|
|
## 7.4.1528
|
|
|
|
#### [link]() (333)
|
|
|
|
|
|
Execute (Set syntax markdown):
|
|
call SetSyntax('markdown')
|
|
|
|
|
|
Do (Enter link):
|
|
gg\<Cr>
|
|
A__HERE1__\<Esc>
|
|
ggj\<Cr>
|
|
A__HERE2__\<Esc>
|
|
ggjj\<Cr>
|
|
A__HERE3__\<Esc>
|
|
ggjjj\<Cr>
|
|
A__HERE4__\<Esc>
|
|
|
|
Expect vimwiki (Good anchor with link navigation):
|
|
[A link B](#a-link-b)
|
|
[tlink](#tlink)
|
|
[7.4.1528](#741528)
|
|
[link (333)](#link-333)
|
|
|
|
# A [link](anything here) B__HERE1__
|
|
|
|
# t[link](anything here)__HERE2__
|
|
|
|
## 7.4.1528__HERE3__
|
|
|
|
#### [link]() (333)__HERE4__
|
|
|
|
|
|
|
|
# Link to anchor in SetExt {{{1
|
|
# Like that
|
|
# -----
|
|
# Issue: #209
|
|
|
|
Given vimwiki (Anchor SetExt):
|
|
[jump](#frst-one)
|
|
|
|
F!rst One
|
|
=========
|
|
|
|
Execute (Set filename wiki_test.md):
|
|
call SetSyntax('markdown')
|
|
|
|
Do (Enter link):
|
|
\<Cr>
|
|
A__HERE__\<Esc>
|
|
|
|
Expect (Cursor jumped SetExt):
|
|
[jump](#frst-one)
|
|
|
|
F!rst One__HERE__
|
|
=========
|
|
|
|
Given vimwiki (Bad Anchor SetExt):
|
|
[jump](#frst-one)
|
|
|
|
F!rst One
|
|
|
|
Execute (Set filename wiki_test.md):
|
|
call SetSyntax('markdown')
|
|
|
|
Do (Enter link):
|
|
\<Cr>
|
|
A__HERE__\<Esc>
|
|
|
|
Expect (Cursor stayed (not jumped) SetExt):
|
|
[jump](#frst-one)__HERE__
|
|
|
|
F!rst One
|
|
|
|
# Link to anchor with spaces {{{1
|
|
# PR #840
|
|
# Issues: #831
|
|
|
|
Given vimwiki (Internal links zith spaces):
|
|
[Any ! apparent name @#$](#basic-heading-many-spaces)
|
|
One line here
|
|
|
|
## Basic HeAding Many SpacES
|
|
|
|
One line here
|
|
|
|
Execute (Set filename wiki_test.md):
|
|
call SetSyntax('markdown')
|
|
|
|
Do (Enter link):
|
|
\<Cr>
|
|
A__HERE__\<Esc>
|
|
|
|
Expect (Cursor at heading position):
|
|
[Any ! apparent name @#$](#basic-heading-many-spaces)
|
|
One line here
|
|
|
|
## Basic HeAding Many SpacES__HERE__
|
|
|
|
One line here
|
|
|
|
Execute (Clear wiki jumps (alias: prev_links)):
|
|
call vimwiki#vars#set_bufferlocal('prev_links', [])
|
|
|
|
|
|
# Before {{{1
|
|
|
|
Given vimwiki (Internal links + one link to filenew):
|
|
# Contents
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
|
|
# Test1
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew)
|
|
|
|
# Test2
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew)
|
|
|
|
Execute (Set filename wiki_test.md):
|
|
call SetSyntax('markdown')
|
|
|
|
Do (Navigate with <Tab>):
|
|
A more Contents\<Esc>
|
|
\<Tab>
|
|
\<Enter>
|
|
A more Test1\<Esc>
|
|
\<Tab>
|
|
\<Tab>
|
|
\<Enter>
|
|
A more Test2\<Esc>
|
|
|
|
Expect (Content added to titles):
|
|
# Contents more Contents
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
|
|
# Test1 more Test1
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew)
|
|
|
|
# Test2 more Test2
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew)
|
|
|
|
Do (Navigate with <Tab> and <Enter> and come back with <Bs>):
|
|
\<Tab>
|
|
\<Enter>
|
|
# Cursor at Test1
|
|
\<Tab>
|
|
\<Tab>
|
|
\<Enter>
|
|
# Cursor at Test2
|
|
\<Tab>
|
|
\<Tab>
|
|
\<Tab>
|
|
# Cursor at Test2/filenew
|
|
A not yet\<Esc>
|
|
\<Bs>
|
|
# Cursor at Test1/test2
|
|
A near Test1/test2
|
|
\<Esc>
|
|
\<Bs>
|
|
# Cursor at Contents/test1
|
|
A near Contents/test1
|
|
\<Esc>
|
|
|
|
Expect (Vimwiki links):
|
|
# Contents
|
|
|
|
- [Test1](#Test1) near Contents/test1
|
|
- [Test2](#Test2)
|
|
|
|
# Test1
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2) near Test1/test2
|
|
- [filenew](filenew)
|
|
|
|
# Test2
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew) not yet
|
|
|
|
Do (Navigate with <Tab> comeback with <Bs> from filenew):
|
|
\<Tab>
|
|
A first shot\<Esc>
|
|
0\<Tab>
|
|
# Cursor at Contents/test1
|
|
\<Enter>
|
|
\<Tab>
|
|
\<Tab>
|
|
A first shot\<Esc>
|
|
0\<Tab>
|
|
# Cursor at Test1/test2
|
|
\<Enter>
|
|
G
|
|
# Cursor at Test2/filenew
|
|
A first shot\<Esc>
|
|
0\<Tab>
|
|
# Cursor at Test2/filenew
|
|
\<Enter>
|
|
# Cursor in filenew (a new file)
|
|
A anything in filenew: empirically it does not count\<Esc>
|
|
\<Bs>
|
|
# Cursor at Test2/filenew
|
|
\<Bs>
|
|
# Cursor at Test1/test2
|
|
\<Bs>
|
|
# Cursor at Contents/test1
|
|
A second shot
|
|
|
|
Expect (Just Contents/test1 got the second shot):
|
|
# Contents
|
|
|
|
- [Test1](#Test1) first shot second shot
|
|
- [Test2](#Test2)
|
|
|
|
# Test1
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2) first shot
|
|
- [filenew](filenew)
|
|
|
|
# Test2
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew) first shot
|
|
|
|
Execute (Delete filenew buffer):
|
|
bd! /testplugin/filenew.md
|
|
|
|
Do (Navigate with <Tab> comeback with <Bs> too far):
|
|
\<Tab>
|
|
# Cursor at Contents/test1
|
|
\<Enter>
|
|
\<Tab>
|
|
\<Tab>
|
|
# Cursor at Test1/test2
|
|
\<Enter>
|
|
\<Tab>
|
|
# Cursor at Test2/test1
|
|
\<Enter>
|
|
\<Tab>
|
|
\<Tab>
|
|
# Cursor at Test1/test2
|
|
\<Enter>
|
|
A first test2\<Esc>
|
|
\<Tab>
|
|
# Cursor at Test2/test1
|
|
\<Enter>
|
|
A first test1\<Esc>
|
|
# Back
|
|
\<Bs>
|
|
# Cursor at Test2/test1
|
|
A second test2/test1\<Esc>
|
|
\<Bs>
|
|
# Cursor at Test1/test2
|
|
A second test1/test2\<Esc>
|
|
\<Bs>
|
|
# Cursor at Test2/test1
|
|
\<Bs>
|
|
# Cursor at Test1/test2
|
|
\<Bs>
|
|
# Cursor at Contents/test1
|
|
# Finished
|
|
\<Bs>
|
|
\<Bs>
|
|
\<Bs>
|
|
\<Bs>
|
|
A 1\<Esc>
|
|
\<Bs>
|
|
A 2\<Esc>
|
|
\<Bs>
|
|
A 3\<Esc>
|
|
\<Bs>
|
|
A 4\<Esc>
|
|
|
|
Expect (After too many <Bs>, cursor stays at the first <Enter> spot in first file: Contents/test1):
|
|
# Contents
|
|
|
|
- [Test1](#Test1) 1 2 3 4
|
|
- [Test2](#Test2)
|
|
|
|
# Test1 first test1
|
|
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2) second test1/test2
|
|
- [filenew](filenew)
|
|
|
|
# Test2 first test2
|
|
|
|
- [Test1](#Test1) second test2/test1
|
|
- [Test2](#Test2)
|
|
- [filenew](filenew)
|
|
|
|
Given vimwiki (link to self):
|
|
- [Bad link](Very bad.html)
|
|
- [My own file](wiki_test)
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
|
|
Do (Follow link to self and append chars):
|
|
\<Tab>
|
|
\<Tab>
|
|
\<Enter>
|
|
a this_is_18_chars \<Esc>
|
|
|
|
Expect (Some chars appended at self link):
|
|
- [Bad link](Very bad.html)
|
|
- [ this_is_18_chars My own file](wiki_test)
|
|
- [Test1](#Test1)
|
|
- [Test2](#Test2)
|
|
|
|
# vim: foldmethod=marker foldlevel=30 sw=2
|