Vimwiki 學習筆記
2012-02-29 update:看到
Vim 文檔中文計劃(簡)了,也就是
說我不必要翻譯就可以了Orz,因此blogger部份不再更新(除非我有開始要同步這部份XD)
2012-02-29 Update:看到有人reference到一篇看來可能翻的比我好的,因此先記下來
Vimwiki|隨便忘記 Wiki
從
懷疑論者的墓誌銘: 我的筆記軟體使用心得
知道 vimwiki 這套筆記軟體後覺得這很可能是我要的東西(治不好的 vim 控),然後按照我
很糟糕的個性基本上都會想把使用手冊讀過一次然後再全部忘掉,為了不發生同樣的悲劇,
也基於想多試一下 vimwiki 的心理,這次就用
vimwiki 把他本身的功能記錄並翻譯了一次,並順
便放上來。
1 未看網站
2 注意事項
-
在寫中文時我並沒有特別想把這篇放到網路上,因此可能前後誤譯、沒使用常見譯名、名
詞不同的部分很多。
-
也因為本來是自用的,所以有些地方沒有翻譯(像是 Golbal command、還有因為我不熟
HTML 所以在 template 和wiki2html 的地方就沒怎麼寫)
-
雖然如此,我還是希望如果有需要更正的地方可以和我連繫
-
剩下的部份可能有空才會補完了
-
blogger中的目錄被拿掉了
3 Mappings
3.1 Global Mappings
-
[count]<Leader>ww 開啟第[count]個wiki index file
-
[count]<Leader>wt 以新分頁開啟…
-
<Leader>ws 列出可用的wikilist
-
[count]<Leader>wi 打開第count個diary的index file
-
[count]<Leader>w<Leader>w 打開第count個wiki中今天的diary wiki file
-
[count]<Leader>w<Leader>t 在新分頁中打開第count個wiki中今天的diary wiki file
3.2 Local mappings
3.2.1 Normal Mode
-
<Leader>wh 把目前這頁轉成HTML
-
<Leader>whh 把目前這頁轉成HTML並用瀏覽器檢視
-
<CR> 進入連結(可能新增頁面)
-
<S-CR> 分割且進入連結(可能新增頁面),在某些terminal沒作用
-
<C-CR> 垂直分割且進入連結(可能新增頁面),在某些terminal沒作用
-
<C-S-CR> 開新分頁且進入連結(可能新增頁面),在某些terminal沒作用
-
<Backspace> 回到前個wiki頁面
-
<Tab> 移到目前面頁的下個連結
-
<S-Tab> 移到目前頁面的上個連結
-
<Leader>wd 刪除目前頁面
-
<Leader>wr 重命名目前頁面
-
<C-Space> toggle 清單的完成/未完狀態
-
= 增加標題等級
-
- 減少標題等級
-
<A-Left> 將這欄向左移, # 這裡好像有問題…
-
<A-Right> 將這欄向右移, # 這裡好像有問題…
-
<C-UP> 可能的話開啟前一天的日記檔。 # 這裡好像有問題…
-
<C-Down> 可能的話開啟下一天的日記檔。 # 這裡好像有問題…
-
<2-LeftMouse> 進入連結(可能新增頁面) # 這裡好像有問題…
-
Note: <2-LeftMouse> 是點兩下左鍵
-
<S-2-LeftMouse> 分割且進入連結(可能新增頁面)# 這裡好像有問題…
-
<C-2-LeftMouse> 垂直分割且進入連結(可能新增頁面)# 這裡好像有問題…
-
<RightMouse><LeftMouse> 回前頁 # 這裡好像有問題…
3.2.2 Insert Mode
-
<CR> 到table正下方的cell,如果是最後一個則新增一列
-
<Tab> 到table的下個cell,如果是最後一個則新增一列
3.2.3 Text object
-
ah 一個section片段
-
ih 沒有線的一個section片段
-
a\ 一個table中的cell
-
i\ 一個表中的inner cell
-
ac 一個表中的欄
-
ic 一個表中的inner欄
4 Commands
4.1 Global Commands
4.2 Local Commands
-
:VimwikiGoto 直接前往arg所指頁面
-
:VimwikiSearch /pattern/ 在本Wiki的所有檔案尋找/pattern/
-
要顯示所有符合列表請使用:lopen
-
要顯下個符合列表請使用:lnext
-
要顯示上個符合列表請使用:lprevious
-
:VimwikiBacklinks 搜尋連結到本頁面的所有wiki連結
-
要顯示所有符合列表請使用:lopen
-
要顯下個符合列表請使用:lnext
-
要顯示上個符合列表請使用:lprevious
-
:VimwikiTable cols rows 創造cols欄rows列的表,預設為2 x 5
-
:VimwikiTableMoveColumnLeft, :VimwikiTableMoveColumnRight
將目前的欄往天或往右移 已mapping到<A-Left>和<A-Right>
-
:VimwikiGenerateLinks 將現在所有有效的連結插入此頁面中(不包含自己)
5 Wiki syntax
目前使用的的wiki syntax是google的wiki語法其子集,可切換成Mediawiki的
標記語法,但目前不支援該語法轉成HTML的功能。
5.1 Typefaces(字體)
-
*粗體*
-
_底線_
-
~~刪除線~~
-
`
code(非語法)文字`
-
^上^標
-
,,下,,標
5.2 Links
5.2.1 內部連結
-
CamelizedWords會被視為wiki連結(目前自己已禁用)
-
[[這是一個link]]
-
[[這是一個link|這是其敍述]]
-
[[這是一個link][這是其敍述]]
5.2.2 外部連結
-
可直接辨視http、mailto、和ftp的連結
-
[http://這是外部連結 這是其敍述]
5.2.3 圖片、圖片連結
圖片連結指的是連結到副檔名為jpg、jpeg、png或gif的檔案(大寫可辨視)。
-
可以直接用連結 = <img src="連結" />
-
[[本地圖片的路徑]] = <img src = "連結" />
-
[[連結當然也可以使用雙中括弧]] = `img src="連結" />
-
[[圖片連結|敍述]] 顯示敍述的連結 = <a href="圖片連結">敍述</a>
-
[[圖片連結|替代文字|]] 會顯示圖片 = <img src="圖片連結" alt="替代文字" />
-
[[圖片連結|替代文字|樣式]] = <img src="圖片連結" alt="替代文字 style="樣式" />
-
[[圖片連結||樣式]] = <img src="圖片連結" style="樣式" />
-
`
[[原始圖片|縮圖]]` = <a href = "原始圖片><img src="縮圖" /></a>
5.3 Headers
-
= Header level 1=
-
== Header level 2==
-
以此類推(共6個)
-
可以設定不同顏色
-
例::hi VimwikiHeader1 guifg=#ff0000
-
在第一個'='前若有空格則會將該Header置中
5.4 Paragraphs
一個段落是以第一行沒有縮排行為一組,不同段以空白行做分格
5.5 Lists
-
無序的清單以*或-啟始附加一空白
-
有序的清單以#開頭加一空白
-
一個清單可以有多行,有同樣縮進即可
-
名詞:: 定義 定義清單
5.6 表格
表格是每個cell皆由|分隔的表格,在第一欄的部份在html中會被highligh為table的
header。而>代表向左合併欄,\/代表向左合併合併欄。
5.7 預先處理文字
在
{{{和
}}}中的文字會被視為一組預先處理的文字。可以另外附加資訊在
{{{tag上,如
`{{{class="brush: python"`
def hello(world):
pass
`}}}`
這會輸出以下的HTML結果:
<pre class="brush: python">
def hello(world):
pass
</pre>
5.8 數學式
數學公式可以使用
MathJax在HTML中呈現和highlight。
有三種可以用的語法:行內、區塊、和區塊環境。
- 行內
\(數學式\) #和LaTeX的的一樣
- 區塊
{{$ #這行必須單獨存在
- 數學式 #不論有幾行都會被縮成一行
{{$ #這行也必須單存在
- 行內區塊
{{$%LaTeX的環境名稱% #這行的環境名稱是特定的LaTeX環境
- 數學式
}}$
-
數學式在Vim中會自動highlight,但是在HTML中顯示有兩個替代選項
-
使用MathJax伺服器來顯示:在HTML header的模版中加入下行
-
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/
latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
在本地瑞安裝MathJax,存了MathJax後在HTML中加入下行
-
<script type="text/javascript" src="<mathjax_folder>/MathJax.js?conf
ig=TeX-AMS-MML_HTMLorMML"></script>
-
<mathjax_folder>應該是放置MathJax的資料夾相對於模版資料夾的路徑
5.9 區塊引用
起頭有著四個或更多空白的文字部份會成為區塊引用。
雖然在vimwiki中不會特別標示,但是可以用HMTL中的CSS來設定。區塊引用常用於引入長
篇的文字時。
5.10 註解
在vimwiki中以
%%開始的行視為註解。只有以
%%開頭的行才算。
5.11 水平線
以四或更多個
-開始的行會被視為水平線 =
<hr /
>
6 Folding/Outline
Vimwiki可以fold header或是列表物體
7 PlaceHolders(佔位符)
-
%toc 目錄名 加入目錄
-
%title 標題名 加入標題
-
%nohtml 加入後該頁不會被編成HTML檔
-
%template 模版名 使用特定的模版在此頁上
8 Todo List
完成清單是一組清單可確認完成與否,利用C-Space來切換開關與否,其中母清單的完成
狀況會依子清單而改變。(可修改g:vimwiki_listsyms來用不同的symbol)
可以在visual模式下一次切換多個list item
9 Tables
:VimwikiTable預設會創造出2 * 5的表格。可以使用<TAB>或是<CR>來快速切換到鄰近表格
,可以使用gqq或gww來Format
10 Diary
可使用<Leader>w<Leader>w開啟,可設定g:vimwiki_diary_months來選擇月份。
11 Calendar interation
可以和
Calendar.vim整合,來
創造diary notek
12 Options
有全域和個別wiki(區域)的,全域的選項改變都使用以下的形式:
let g:option_name=option_value
所有區域的選項都是wiki列表中的dictionary,以下列的表式方式:
{'option1': 'value1', 'option2': 'value2', ...}
例如以下的例子:
let g:vimwiki_list=[{'path': '~/my_site/', 'path_html': '~/public_html/'},
\ {'path': '~/my_docs/', 'ext': '.mdox'}, {}]
就有了3個wiki,第一個wiki放在~/my_site/下,html會放在~/public_html下,第二個
wiki的副檔名為.mdox,而空白的 dictionary 代表使用預設的選項。
也可以例用個別的 dictionary 來創造wiki,例如以下的式子:
let wiki_1 = {}
let wiki_1.html_template = '~/public_html/template.tpl'
let wiki_1.nested_syntaxes = {'python': 'pyton', 'c++': 'cpp'}
let g:vimwiki_list = [wiki_1]
12.1 per wiki options
使用:
let g:vimwiki_list=[{'path': '~/my_site/', 'path_html': '~/public_html/'},
\ {'path': '~/my_docs/', 'ext': '.mdox'}, {}]
設定
| option
|
default value
|
comment
|
| path
|
~/vimwiki
|
wiki 檔案的放置路徑
|
| path_html
|
~/vimwiki_ html
|
從 wiki 檔產生的HTML其放置處
|
| auto_export
|
0(0, 1)
|
是否自動產生 HTML 檔案
|
| index
|
index
|
index 檔案的名字(不含副檔名)
|
| ext
|
.wiki
|
副檔名
|
| syntax
|
default(default, media)
|
wiki 語法
|
| template_path
|
~/vimwiki/template/
|
HTML 模版放置處
|
| template_default
|
default
|
預設模版的名字
|
| template_ext
|
.html
|
預設的模版副檔名
|
| css_name
|
style.css
|
使用的css名稱
|
| maxhi
|
1(0, 1)
|
是否檢查有不存在的連結
|
| nested_syntax
|
{}
|
使用特定類型的vim highlight
|
| diary_rel_path
|
diary/
|
diary wiki路徑
|
| diary_index
|
diary
|
diary wiki 檔的index檔其名字
|
| diary_header
|
Dhary
|
diary index 的 Header 名字
|
| diary_line_count
|
4
|
diary index 中每一列的連結數
|
| custom_wiki2html
|
''
|
轉成 HTML 的 script 其名字
|
12.2 global options
使用:
let g:option_name=option_value
來定義。
| option
|
default
|
comment
|
| g:vimwiki_hl_headers
|
0(0, 1)
|
使用自訂的header highlight
|
| g:vimwiki_hl_cb_checked
|
0(0, 1)
|
完成列表物件設為註解色
|
| g:vimwiki_global_ext
|
1(0, 1)
|
以已登記副檔名判斷為wiki檔
|
| g:vimwiki_upper
|
|
用來判斷視為 WikiWord 的字母
|
| g:vimwiki_lower
|
|
用來判斷視為 WikiWord 的字母
|
| g:vimwiki_auto_checkbox
|
1(0, 1)
|
是否自動做出checkbox
|
| g:vimwiki_menu
|
'Vimwiki'
|
可選的GUI選單
|
| g:vimwiki_stripsym
|
|
替換不可用的sym
|
| g:vimwiki_badsyms
|
|
在此處的列表會自動被替換
|
| g:vimwiki_listsyms
|
' .oOX'
|
母清單完成狀態所代表的符號
|
| g:vimwiki_use_mouse
|
0(0, 1)
|
是否是用滑鼠的 mappings
|
| g:vimwiki_folding
|
0(0, 1)
|
是否使用folding
|
| g:vimwiki_fold_lists
|
0(0, 1)
|
是否folding list
|
| g:vimwiki_camel_case
|
0(0, 1)
|
是否將 WikiWord 視為連結
|
| g:vimwiki_list_ignore_newline
|
1(0, 1)
|
是否忽略列表物件中的新行
|
| g:vimwiki_use_calendar
|
1(0, 1)
|
是否使用 calendar addons
|
| g:vimwiki_browsers
|
|
開啟HTML的瀏覽器(字串列表)
|
| g:vimwiki_table_auto_fmt
|
1(0, 1)
|
表格是否自動格式化?
|
| g:vimwiki_w32_dir_enc
|
''
|
是否以特定編碼創造資料夾
|
| g:vimwiki_CJK_length
|
|
Vim73廢棄
|
| g:vimwiki_dir_link
|
''
|
如何開啟目的為資料夾的連結
|
| g:vimwiki_html_header_numbering
|
0(0, 1, 2)
|
是否為Header編號
|
| g:vimwiki_html_header_numbering_sym
|
''
|
Header 編號後使用的符號
|
| g:vimwiki_file_exts
|
(略)
|
連結不會轉成 .html 的檔案類型
|
| g:vimwiki_valid_html_tags
|
(略)
|
在 vimwiki 能使用的 HTML 標籤
|
| g:vimwiki_user_htmls
|
''
|
其他自有的 .html(不會被刪)[,]
|
| g:vimwiki_conceallevel
|
2
|
#不確定
|
| g:vimwiki_url_mingain
|
12
|
多長後的 URL會被略縮 #不確定
|
| g:vimwiki_url_maxsave
|
12
|
#不確定
|
| g:vimwiki_debug
|
0(0, 1)
|
顯示除錯訊息
|
| g:vimwiki_diary_moths
|
(略)
|
日記示的月份
|
13 template
template 的格式應該看起來像這樣:
<html>
<head>
<link rel="Stylesheet" type="text/css" href="%root_path%style.css" />
<title>%title%</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
%content%
</body>
</html>
-
%title% 會被替換成用vimwiki-tilte中所設定的名字
-
%root_path% 會被替換成子資料夾數目的../。舉例來說,在連結
[[dir1/dir2/my page]] 中的%root_path%會被換成../../。
-
%content% 會被換成 wiki 檔的內容。
-
如果不使用預設的模版內容,則只要在該頁加入
%template 使用的模版名稱
14 wiki2html
#TODO 待補完,見:help vimwiki-option-custom_wiki2html
預設的script放在 $VIMHOME/autoload/vimwiki/customiwiki2html.sh 中
15 相容其他plugin
15.1 Snipmate
Vimwiki預設的<Tab>按鍵會和Snipmate的衝到,因此要在
~/.vim/ftplugin/vimwiki.wiki 中的
inoremap <expr> <buffer> <Tab> vimwiki_tbl#kbd_tab()
換成其他的熱鍵,例如:
inoremap <expr> <buffer> <C-Tab> vimwiki_tbl#kbd_tab()
參考:
用 Vimwiki 写博客 - 闲耘™.博客
last modified: 2011-02-29
stat: unfinished
last position: