2009-10-10

vifm 筆記

生存指令


:q 或 :x
離開 vifm

:h[elp]
必學指令!必需將 vim-help.txt 放到 %APPDATA%\Vifm 底下。


移動游標


Space/Tab
切換窗格

j
向下移動

k
向上移動

gg
移動到檔案清單最頂端

G
移動到檔案清單最底部

:number
移到第 number 列

:0
移動到檔案清單最頂端

:$
移動到檔案清單最底部

[count]j
向下移動 [count] 次

[count]k
向上移動 [count] 次

[count]gg
前往第 count 列

[count]G
前往第 count 列

[count]%
前進到檔案清單 [count]% 的位置,譬如:輸入 :30% 就會前進到檔案清單 30% 的位置

Ctrl-b
往上捲動一頁

Ctrl-f
往下捲動一頁

切換目錄


h
向上一層目錄

l
與 Enter 鍵功能相同,如果游標所在是資料夾,就進入資料夾;如果是檔案,就以預設方式開啟 (e.g. 打開文字檔、音樂檔、執行可執行檔)

:cd [folder]
改變所在的目錄 (在 Windows 仍必需用 "/" 代表根目錄與目錄的分隔,不可只打 :cd,Vifm 會當掉)

:his[tory]
列出最近去過的目錄清單,可在清單中切換過去

:volume
列出磁碟機選單,可直接切換過去 (Only Win32)


選取檔案


v
進入 Visual 模式。進入此模式後,移動游標,會選取游標所在的檔案

t
在檔案清單中按 t,會把游標所在的檔案選取起來,如果檔案本身已被選取,就會取消其被選取的狀態

Ctrl-c 或 Esc
取消選取的檔案


搜尋檔案


/regular_expression_pattern
把目前檔案清單中符合指定 pattern 的檔案反白標示出來(即讓這些檔案屬於「被選取」的狀態)

n
往下找

N
往上找

:fil[ter] regular_expression_pattern
把符合指定 pattern 的檔案篩掉,也就是,不顯示符合指定 pattern 的檔案。被過濾掉的檔案,搜尋(/)與命令(:command)對它們沒有作用。

:in[vert]
這是 filter 的反效果

zm
篩掉所有以小數點開頭的檔案

zo
顯示所有小數點開頭的檔案

zf
先選取檔案後再用此命令,檔案清單中被選取的檔案,就會被篩掉,如要再顯示出來,可按 zO

zM
指定 filter 後再用此命令,檔案清單中符合 filter pattern 的檔案,就會被篩掉

zO
指定 filter 後再用此命令,檔案清單中符合 filter pattern 的檔案,就會顯示出來,不會被篩掉


管理檔案


cw
重新命名

dd
預設將選取的檔案移到 trash directory

yy
拉(yank)選取的檔案(即一般我們所謂「複製」的功能)

p
將拉選的檔案複製或移動到目前所在資料夾 (即一般我們所謂「貼上」的功能)

[count]dd
從游標位置所在的檔案開始,將 [count] 個檔案移到 trash directory

[count]yy
從游標位置所在的檔案開始,拉(yank) [count] 個檔案

:[count] user command
目前還沒實作

:[count] command
目前內建的 :[count] command 只有:[count]d[elete]。例如: :3d 會從目前游標所在的檔案算起,刪除 3 個檔案。

:empty
把 trash directory 中的檔案永久刪除

:copy
把目前所在或選取的檔案複製到另一個窗格 (Win32 Only)

:move
把目前所在或選取的檔案移動到另一個窗格 (Win32 Only)


檔案資訊


Ctrl-g
顯示檔案資訊


顯示模式


:view
可在另一個窗格顯示本窗格中游標所在檔案的內容,再執行一次會恢復原來兩個窗格都顯示檔案清單的模式

:so[rt]
切換排序的方式,可按檔名、副檔名、大小……或其他檔案屬性來排序。

:sp[lit]
切換為雙窗格。Vifm 預設已是雙窗格,不知何時需要用到此命令?而且此命令目前似乎無效,執行後顯示「Unknown Command」


書籤功能


m[a-z][A-Z][0-9]
設定書籤

'[a-z][A-Z][0-9]
前往書籤

:marks
顯示書籤選單


執行外部命令


:sh
開啟一個 shell

:! program
執行 shell 命令

:! program&
在背景中執行 shell 的命令

:!! program
與 :! program 相同,但在回到 vifm 前,會先暫停螢幕畫面

:e
呼叫 vim 來編輯游標所在的檔案 (根據測試,如果選取了兩個檔案,無法在 vim 中正確呼叫出兩個檔案,會產生一個新檔,檔名為兩者相加)


進階自訂功能


:com[mand]
列出所有自訂的 user commands

:com name action
設定新的 user command。name 是自訂命令的名稱,action 可以是 shell 命令。與 vim 的 user command 不同的是,vifm 的 user command 不需要用大寫字母開頭。預設會在 shell 中執行。如果要在背景執行,要在命令的最後加上 & 符號。例如: :com rm rm %f &

:com! name action
覆蓋先前自訂的命令

:delc command_name
移除名稱為 command_name 的自訂命令


其他


Ctrl-c 或 Esc
取消

Ctrl-l
重繪螢幕


參考資訊


Vifm Help

2009-10-05

Dirac

Dirac 是 BBC Research 開發的一種視訊編碼格式,不僅免費開放使用,還開放原始碼。以 Dirac 作為格式名稱是為了紀念一位英國理論物理學家、同時是諾貝爾獎得主的 Paul Dirac。Dirac 計劃負責人是 Tim Borer,原始的演算法是由 Thomas Davies 所開發,Dirac 與 VC-2 規格中的許多部分都是他寫的。

Dirac 可以壓縮任何尺寸的圖片,不論是低解析度的 QCIF (176x144 pixels),還是高解析度的 HDTV (1920x1080),或甚至更高的解析度都可以。Dirac 希望能比一些現存格式 (eg. MPEG-4 Part 2, MPEG-2 Part 2, Theora, WMV) 更省流量、品質更好,網站上甚至宣稱 "a two-fold reduction in bit rate over MPEG-2 for high definition video",這已經算是與 H.264、VC-1 同等級的 codec 了。

BBC 在開發 Dirac 之初,就已經設定要 Open source,希望能讓開放原始碼社群、學術界與其他人共同參與,因此,它的設計哲學就是 "keep it simple",讓人容易理解它的理論、設計,以便豐富它的文件。別以為「簡單」就代表容易,在視訊壓縮界,這可是一項很有野心的企圖,一種編碼要壓縮率高、壓出好品質、壓縮速度快、又要維持簡單,其實是很困難的,如目前最紅的 H.264,就比先前的 MPEG-2、H.263、MPEG-4 Part 2 要複雜。除此之外,Dirac 的開發者也很注重專利問題,據開發者表示,他們沒有請律師團研究,所以無法確知,但他們相當確定 (pretty sure) 他們應該沒有侵犯到別人的專利。就算很不幸真的踩中地雷,他們也會重寫 code 避開,Dirac 有模組化的設計,所以他們認為遇到問題時相對比較容易解決。

Dirac 採用 wavelet compression (即 JPEG 2000 採用的壓縮方式),與大部分舊格式 (H.264、VC-1) 所採用的 discrete cosine transforms 不同。Dirac 並非唯一嚐試採用 wavelet compression 的 codec,其他使用 wavelet compression 的還有 Rududu、Snow、RedCode、與 Tarkin。

Dirac 可以放在容器格式內,如 avi、ogg、mkv 都可以。事實上,只要是依據 ISO base media format (MPEG-4 Part 12, e.g., MP4, 3GP) 的容器格式,或者 MPEG-2 transport stream,應該都可以置入 Dirac,因為 BBC 已向 MP4 Registration AuthoritySMPTE Registration Authority 註冊 Dirac。

Dirac 是視訊編碼的格式,目前實作出 Dirac codec 的軟體,最早的是 BBC 的 reference implementation - dirac-research (原先叫作 "Dirac",沒錯,真的很令人錯亂,後來改名 dirac-research,還是一樣令人錯亂),用 C++ 寫的,2008 年 9 月 17 日以 MPL、GNU GPL、GNU LGPL 釋出 Ver 1.0.0。dirac-research 實作了 intra-frame only subset 的部分,這個 subset 稱為 Dirac Pro,它已經被提到 SMPTE 作為 VC-2 標準的候選者之一。Dirac Pro 在 2008 北京奧運期間,被 BBC 內部用來傳輸 HDTV 圖片。

Dirac 的另一個實作是 Schrödinger,也是由 BBC 所贊助,著重在效能、可攜性,而且仍維持 100% 的 bitstream 相容性。Schrödinger 也提供了 GStreamer plugin。目前 Schrödinger 可以在一台普通的 CoreDuo 筆電上即時解碼 720/25p 的影片。Schrödinger 是用 ANSI C 所寫,授權與 dirac-research 相同,並多加了一個 MIT License。

Schrödinger 與 dirac-research 的差別在於,前者比較快、品質比較低,後者比較慢,但品質比較好。

Dirac 開發大事記

2008 年 1 月 21 日,完成了 Dirac 格式的規格書,之後的開發,只修正錯誤、或限制功能。

2008 年 2 月 22 日,釋出 Schrödinger 1.0.0。

2008 年 9 月 17 日,BBC 釋出 dirac-research 1.0.0 的 reference implementation。

2008 年 9 月 23 日,釋出了包含 motion compensation 與 inter-frame coding 的完整的 Dirac 規格書 2.2.3 版。

進一步資訊請看:

Dirac 官方網站
Dirac_(codec) (Wikipedia 上的說明)

2009-10-01

Ogg Vorbis 與 Theora

Ogg 是一種 Container format,由 Xiph.Org Foundation 所維護,裡頭可以放 audio、video、text、metadata。

Vorbis 則是一個實作「有損音樂壓縮」的專案,同樣由 Xiph.Org Foundation 所開發。它實作了 Lossy audio format 的 specification 與 codec 的部分,因為常放在 Ogg container format 內,所以常被合稱 Ogg Vorbis,但我認為我們要留意,Ogg 與 Vorbis 其實是兩回事的。

Ogg 內雖然可以放 video,但早期一直沒有實作,直到 2002,有人 hack 了 ogg format,讓人可以把 Microsoft Windows 的 Directshow Framework 的 video 放到 Ogg container 內,這就是 ogm,原本這個實作是 closed source,且僅限於 Windows,後來才開放。再後來,ogg 才正式加入 video 與 subtitle 的支援,這是 ogv,但可惜的是,這跟之前的 ogm 不相容。目前 ogv 是 Ogg container format 正式規範、支援的 video implementation。

Theora 則是一個實作「有損視訊壓縮」的專案,同樣由 Xiph.Org Foundation 所開發。它的程式碼是源自於非開放原始碼的私有技術 VP3,這原本是由 On2 Technologies 所有擁有,但後來開放為 Public domain。Theora 是 VP3 的 superset,所以,theora 的 decoder 可以解 VP3 的影片,但反之不一定成立;VP3 的影片可以直接轉成 theora 的影片,不需重新壓縮,但反之不一定成立。

更新日誌:

20100308 改錯字。最後一段「非開發原始碼」→「非開放原始碼」。


參考資訊: