顯示具有 vim-like 標籤的文章。 顯示所有文章
顯示具有 vim-like 標籤的文章。 顯示所有文章

2012年8月29日 星期三

vim 化 w3m

W3M 是所知最好的文字瀏覽器, 然而即使有著類似 vim 的上下移動鍵,他是一款 emacs-like 而非 vim-like 的瀏覽器。較明顯的分別法從 C-f/C-b是做為游標移動到下/上一個位置而非 vi 系的下/上一頁就可略知一二,更別提滿滿的 Meta- 組合鍵了。所以很早就有將其 Vim 化的想法。但那時只找尋過相關文章,並直接套用其設定了事。

直到最近凍仁翔分享了 w3m 自訂快捷鍵的相關知識及個人自定義按鍵後,才想要重新設定過 w3m 的快捷鍵。


Vim 化中有幾個難點:一、他的命令都是大寫的要使用命令列輸入不好打;二、在命令列中沒有自動補完的功能;三、快捷鍵的明稱沒有統一性,要記起來頗有難度;四、沒有別名功能;五、快捷鍵只辨識前兩個序列,也就是說快捷鍵 :buffer(歷史記錄)和 :bmarks(書籤),w3m 都會判定成 :b,容易造成大量衝突。

不過也 w3m 定義 keybinding 很靈活:一、可做為快捷鍵的按鍵很多, /:?., 等符號都可使用;二、能以兩個按鍵做為一個動作的快捷,雖然只有兩個而不能以快捷捷模擬別名(alias),但除此之外的 Vim 一個動作也很少超過兩個鍵,因此設定起來相當充足;三、w3m 有 menu 的設定,可以利用 menu 做為命令列的代替之一。

以下是自己w3m 的快捷鍵設定,相較於 Vim,也使用了不少 pentadactyl 的概念在裡面。因此,Buffer 和 tab(分頁) 同義,而使用 history 來指稱歷史記錄。在 vim 中,buffer 指的是所有開啓過檔案的暫存,包含分頁開啓的。


$HOME/.w3m/keymap

# A sample of ~/.w3m/keymap (vim)
#
# Ctrl  : C-, ^
# Escape: ESC-, M-, ^[
# Space : SPC, ' '
# Tab   : TAB, ^i, ^I
# Delete: DEL, ^?
# Up    : UP, ^[[A
# Down  : DOWN, ^[[B
# Right : RIGHT, ^[[C
# Left  : LEFT, ^[[D
# vim :set fdm=marker noet
# invalidate defaults {{{
# 取消預設 keybinding。
keymap C-@  NULL
keymap C-a  NULL
keymap C-b  NULL
keymap C-e  NULL
keymap C-f  NULL
keymap C-g  NULL
keymap C-h  NULL
keymap TAB  NULL
keymap C-j  NULL
keymap C-k  NULL
keymap C-l  NULL
keymap C-m  NULL
keymap C-n  NULL
keymap C-p  NULL
keymap C-q  NULL
keymap C-r  NULL
keymap C-s  NULL
keymap C-t  NULL
keymap C-u  NULL
keymap C-v  NULL
keymap C-w  NULL
keymap C-z  NULL

keymap SPC  NULL
keymap !  NULL
keymap \"  NULL
keymap #  NULL
keymap $  NULL
keymap (  NULL
keymap )  NULL
keymap +  NULL
keymap ,  NULL
keymap -  NULL
keymap .  NULL
keymap /  NULL
keymap :  NULL
keymap ";"  NULL
keymap <  NULL
keymap =  NULL
keymap >  NULL
keymap ?  NULL
keymap @  NULL
keymap B  NULL
keymap D  NULL
keymap E  NULL
keymap F  NULL
keymap G  NULL
keymap H  NULL
keymap I  NULL
keymap J  NULL
keymap K  NULL
keymap L  NULL
keymap M  NULL
keymap N  NULL
keymap Q  NULL
keymap R  NULL
keymap S  NULL
keymap T  NULL
keymap U  NULL
keymap V  NULL
keymap W  NULL
keymap Z  NULL
keymap [  NULL
keymap ]  NULL
keymap \^  NULL
keymap a  NULL
keymap b  NULL
keymap c  NULL
keymap g  NULL
keymap h  NULL
keymap i  NULL
keymap j  NULL
keymap k  NULL
keymap l  NULL
keymap m  NULL
keymap n  NULL
keymap o  NULL
keymap q  NULL
keymap r  NULL
keymap s  NULL
keymap u  NULL
keymap v  NULL
keymap w  NULL
keymap z  NULL
keymap {  NULL
keymap |  NULL
keymap }  NULL

keymap M-TAB  NULL
keymap M-C-j  NULL
keymap M-C-m  NULL

keymap M-:  NULL
keymap M-<  NULL
keymap M->  NULL
keymap M-I  NULL
keymap M-M  NULL
keymap M-W  NULL
keymap M-a  NULL
keymap M-b  NULL
keymap M-c  NULL
keymap M-e  NULL
keymap M-g  NULL
keymap M-k  NULL
keymap M-l  NULL
keymap M-m  NULL
keymap M-n  NULL
keymap M-o  NULL
keymap M-p  NULL
keymap M-s  NULL
keymap M-t  NULL
keymap M-u  NULL
keymap M-v  NULL
keymap M-w  NULL

keymap UP  NULL
keymap DOWN  NULL
keymap RIGHT  NULL
keymap LEFT  NULL

keymap M-[E  NULL
keymap M-[L  NULL
keymap M-[Z  NULL

keymap M-[1~  NULL
keymap M-[2~  NULL
keymap M-[4~  NULL
keymap M-[5~  NULL
keymap M-[6~  NULL
keymap M-[28~  NULL

# }}}

# Page/Cursor motion {{{
keymap C-f NEXT_PAGE
# pentadactyl-like
keymap SPC NEXT_PAGE
keymap C-b PREV_PAGE
keymap l MOVE_RIGHT
keymap h MOVE_LEFT
keymap C-d MOVE_DOWN
keymap C-u MOVE_UP
#keymap  MOVE_RIGHT1
#keymap  MOVE_LEFT1
keymap j MOVE_DOWN1
keymap k MOVE_UP1
keymap C-y DOWN
keymap C-e UP
keymap zH SHIFT_LEFT
keymap zL SHIFT_RIGHT
keymap zh LEFT
keymap zl RIGHT
keymap 0 LINE_BEGIN
keymap \^ LINE_BEGIN
keymap $ LINE_END
keymap zz CENTER_H
# self add
keymap zZ CENTER_V
#keymap M-g GOTO_LINE
keymap gg BEGIN
keymap G END
keymap w NEXT_WORD
keymap b PREV_WORD
# emacs-like
keymap C-a LINK_BEGIN
keymap C-e LINK_END
keymap TAB NEXT_LINK
# pentadactyl-like, maybe change to ]l
keymap ] NEXT_LINK
keymap M-TAB NEXT_LINK
# pentadactyl-like, maybe change to [l
keymap [ PREV_LINK
# pentadactyl-like
keymap f MOVE_LIST_MENU
#keymap  NEXT_RIGHT
#keymap  NEXT_LEFT
#keymap  NEXT_DOWN
#keymap  NEXT_UP
#keymap  NEXT_RIGHT_DOWN
#keymap  NEXT_LEFT_UP
keymap C-o UNDO
keymap C-i REDO
#}}}

# Hyperlink operation {{{
keymap C-m GOTO_LINK
keymap C-j GOTO_LINK
# original-setting
keymap C-t TAB_LINK
#keymap M-C-j SAVE_LINK
#keymap M-C-m SAVE_LINK
# original-setting
keymap I VIEW_IMAGE
#keymap M-I SAVE_IMAGE
#keymap  SUBMIT
# peek curl url
keymap c PEEK 
#keymap u PEEK_LINK
# original-setting
keymap i PEEK_IMG 
keymap gC-g INFO
keymap C-g LINE_INFO
# automark url use w3m setting
#keymap : MARK_URL
#keymap ";" MARK_WORD
#keymap M-: MARK_MID
#keymap F FRAME
#keymap M EXTERN
#keymap M-M EXTERN_LINK
#keymap L LIST
# pentadactyl-like
keymap F LIST_MENU
# }}}

# File/Stream operation {{{
#keymap :o GOTO
keymap o GOTO
keymap O GOTO_RELATIVE
#keymap :t TAB_GOTO
keymap t TAB_GOTO
keymap T TAB_GOTO_RELATIVE
#keymap :r LOAD
keymap @ READ_SHELL
keymap # PIPE_SHELL
keymap | PIPE_BUF
# }}}

# Buffer operation {{{
#keymap B BACK
keymap L NEXT
keymap H PREV
#keymap :his SELECT_MENU
keymap ,be SELECT
keymap gf VIEW
#keymap :w SAVE
#keymap :W PRINT
# self add: edit mode, or use i/I?
keymap e EDIT
#keymap S SAVE_SCREEN
keymap E EDIT_SCREEN
keymap r RELOAD
#keymap  RESHAPE
keymap C-l REDRAW
#keymap  DISPLAY_IMAGE
#keymap  STOP_IMAGE
# }}}

# Tab operation {{{
# TODO may change to C-tC-t
#keymap C-t NEW_TAB
#keymap C-w CLOSE_TAB
keymap d CLOSE_TAB
keymap D CLOSE_TAB
keymap gt NEXT_TAB
keymap gT PREV_TAB
#keymap b TAB_MENU
#keymap :buffer TAB_MENU
# TODO may change to C-tl
keymap C-wl TAB_RIGHT
keymap C-wC-l TAB_RIGHT
keymap C-wh TAB_LEFT
keymap C-wC-h TAB_LEFT
# }}}

# Boookmark operation {{{
# confilct to TAB_MENU
#keymap :bmarks VIEW_BOOKMARK
keymap a ADD_BOOKMARK
keymap A ADD_BOOKMARK
#keymap M-b BOOKMARK
# }}}

# Search {{{
keymap / SEARCH
keymap ? SEARCH_BACK
keymap n SEARCH_NEXT
keymap N SEARCH_PREV
keymap C-r ISEARCH_BACK
keymap C-s ISEARCH
# }}}

# Dcitionary look-up {{{
# TODO see README.dict
#keymap M-w DICT_WORD
#keymap M-W DICT_WORD_AT
# }}}

# Mark operation {{{
# TODO knowing how to use this feature
# FIXME confilct with menu
keymap m MARK
# self add
keymap C-n NEXT_MARK
keymap C-p PREV_MARK
# self add
keymap \" REG_MARK
# }}}

# Miscellany {{{
# self add
# ranger-like: gx to go other position
keymap : MENU
# self add
#keymap :map ? HELP
# self add
#keymap :pref OPTIONS
#keymap C-k COOKIE
#keymap :ver VERSION
#keymap C-h HISTORY
# plugin-like
#keymap ,be HISTORY
#keymap :dl DOWNLOAD_LIST
#keymap  CHARSET
#keymap  DEFAULT_CHARSET
# pentadactyl-like: :dia console
#keymap :mes MSGS
#keymap m MOUSE_TOGGLE
#keymap C-w WRAP_TOGGLE
#keymap :: COMMAND
# self configured i3-like: open dmenu
keymap M-c COMMAND
#keymap  ALARM
#keymap M-o SET_OPTION
#keymap  SETENV
#keymap :map DEFINE_KEY
# pentadactyl-like :rehash
#keymap :source REINIT
keymap ! SHELL
keymap C-c INTERRUPT
#keymap :q QUIT
keymap ZZ QUIT
keymap ZQ EXIT
keymap C-z SUSPEND
# }}}

# User defined keymaps {{{
# goto homepage
keymap gh GOTO https://www.google.com/
keymap gH TAB_GOTO https://www.google.com/
# }}}

$HOME/.w3m/menu

# A sample of ~/.w3m/menu  (submenu type)
#
# menu MENU_ID
#  func  LABEL FUNCTION KEYS
#  popup LABEL MENU_ID  KEYS
#  nop   LABEL
# end
#
# MENU_ID
#  Main:   Main Menu
#  Select: Buffer selection menu

menu Main
 func ":            (:)" COMMAND  ":"
 nop "----------------"
 func ":open        (o)" GOTO  "oO"
 func ":tabopen     (t)" TAB_GOTO "tT"
 func ":read        (r)" LOAD  "rR"
 nop "----------------"
 func ":w           (w)" SAVE  "w"
 func ":W           (W)" PRINT  "W"
 nop "----------------"
 func ":history     (h)" SELECT_MENU  "hH"
 popup ":b-         >(b)" Bxxx      "bB"
 func ":dl          (d)" DOWNLOAD_LIST "dD"
 nop "----------------"
 func ":source      (s)" REINIT  "sS"
 popup ":m-         >(m)" Mxxx  "mM"
 func ":preferences (p)" OPTIONS  "pP"
 func ":version     (v)" VERSION  "vV"
 nop "----------------"
 func ":quit         (q)" QUIT  "qQ"
end

menu Bxxx
 func ":buffers     (u)" TAB_MENU "uU"
 func ":bmarks      (m)" VIEW_BOOKMARK "mM"
end

menu Mxxx
 func ":map         (?)" HELP  "?"
 func ":messages    (e)" MSGS  "eE"
 func "map keys     (m)" DEFINE_KEY "mM"
end


另外,如果有更新版本會同步到lycsjm/homeconfig 下的 .w3m 中。

2012年2月22日 星期三

vimwiki ver 1.3dev 中文破翻譯

Vimwiki 學習筆記

2012-02-29 update:看到Vim 文檔中文計劃(簡)了,也就是 說我不必要翻譯就可以了Orz,因此blogger部份不再更新(除非我有開始要同步這部份XD)
2012-02-29 Update:看到有人reference到一篇看來可能翻的比我好的,因此先記下來 Vimwiki|隨便忘記 Wiki

懷疑論者的墓誌銘: 我的筆記軟體使用心得 知道 vimwiki 這套筆記軟體後覺得這很可能是我要的東西(治不好的 vim 控),然後按照我 很糟糕的個性基本上都會想把使用手冊讀過一次然後再全部忘掉,為了不發生同樣的悲劇, 也基於想多試一下 vimwiki 的心理,這次就用 vimwiki 把他本身的功能記錄並翻譯了一次,並順 便放上來。

1 未看網站

2 注意事項

  1. 在寫中文時我並沒有特別想把這篇放到網路上,因此可能前後誤譯、沒使用常見譯名、名 詞不同的部分很多。
  2. 也因為本來是自用的,所以有些地方沒有翻譯(像是 Golbal command、還有因為我不熟 HTML 所以在 template 和wiki2html 的地方就沒怎麼寫)
  3. 雖然如此,我還是希望如果有需要更正的地方可以和我連繫
  4. 剩下的部份可能有空才會補完了
  5. 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 = "連結" />
    • 相對路徑是從path_html開始找的
  • [[連結當然也可以使用雙中括弧]] = `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>
  • 在使用外部js的上色工具時可能會用到。
  • 可設定以vim可認知的方式來hightlight 預處理文字區塊,詳見nested_syntaxes

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:

2011年7月29日 星期五

近日嘗試——rsync, ranger, xclip

最近都偷懶沒更新Orz…果然要學還是不容易的…

有些有說明的部份就直接貼網址了…
 小小工程師的生活雜記: rsync 參數設定及範例
rsync是在上學期上到scp時才注意到的,參數很多一時記不起來,所以就先放著…
是說我也因為一直沒有分出哪些才是我真正該備份的資料而一直沒做事Orz…

ranger - 概要 [Savannah]
Vim-like的檔案管理員(file manager),之前在打造自己的Vim時有看到VimExplorer這個script,但和編輯器混在一起不是很喜歡,所以只有在心中掛念這樣事,最近心血來潮才去找的…

和nautilus(Gnome系統預設的file manager)比:
其實nautilus已經夠符合日常所用(要求還真低…),只是一直對幾點很不滿意:
  1. 自動補齊功能很糟:今天不想用滑鼠點而想手動輸入路徑,因此按下^l跳到位址欄,當輸入/me時natilus自動補齊成/media/,嗯這很好,但是…為何要把補齊的dia/反白啊啊啊(翻桌),既然沒有支援emacs-like的^e(跳到行尾)那每自動補齊一次我不就要按一次end嗎?(重點是很遠!)
  2. 搜尋功能很糟:在同一資料夾下只雖然支援隨打即找(好像是gnome系列(還是該說以gtk寫的)的都是一樣),但是只能從開頭開始找Orz(我知道有find但沒快捷鍵可用)
而ranger身為命令列的檔案管理員在這兩方面都還蠻令我滿意的

xclip(1): CLI to X selections - Linux man page
介紹這個是順便為了解決我自己的問題的,簡單來說ranger沒有提供複製檔案路徑的function…xclip是款讓cmd和xmod下的剪貼簿互動的軟體,安裝後可在ranger下輸入
:shell echo %d/%f |  xclip -selection clipboard

就可將檔案路徑複製到剪貼簿中了。