iT邦幫忙

4

[完全用 GNU/Linux 工作] 13. Pentadactyl

Pentadactyl 是個可以用 Vim 的想法來操控 Firefox 好套件,對於 Vim Hacker 更是如虎添翼,就讓它帶領我們進入加速世界吧! (本文同步發佈於 凍仁的筆記)。
Pentadactyl 是個號稱「只用五隻手指」就可以完全操控 Firefox 的 Vim-like 套件,而且相似度極高,不管是 hjkl 的操作模式、自訂快捷鍵 (keymap) 還是更換佈景主題 (colorsheme) 它都辦得到。

它與 Vimperator 的差異在於:前者是在 Firefox 實作出 100% 的 Vim;後者優化了瀏覽上的使用者體驗,並標榜它是可用、簡潔、穩定及具有設計的。事實上後者對於新版的 Firefox 較不友善,常跟不上更新 (或許是該怪 Firefox 更新速度過快),除此之外前者的高自訂性以及其它的林林總總讓凍仁最後選擇了 Pentadactyl。


▲ Pentadactyl 操作手冊 (:help)。

快速上手

若 Firefox 版本太新,請至 Pentadactyl 官方網站手動安裝 Nightly builds 的版本。

Add-ons | Mozilla 網站上的 plugin 已多年未更新。

圖形設定

	" 啟用選單列、分頁列及書籤列。
	:set go+=mTB<CR>

頁面捲動

	j		" 往下捲動一行。
	k		" 往上捲動一行。
	<C-f>	" 往下捲動一頁。
	<C-b> 	" 往上捲動一頁。

分頁及歷史記錄

	gt	" 前往下個分頁。
	gT	" 前往上個分頁。
	g0	" 前往第一個分頁。
	g$	" 前往最後一個分頁。
	d	" 關閉當前分頁。

	" 開啟新分頁,可依輸入的文字進行搜尋或開啟書籤、歷史記錄。
	t drx.tw

	" 於當前分頁進行搜尋或開啟書籤、歷史記錄。
	o drx.tw

凍仁的 Pentadactyl

如不想使用凍仁的環境設定 (pentadactylrc),請跳過此步驟。

下載凍仁的環境設定。

[ jonny@wheezy ~ ]
$ wget https://raw.github.com/chusiang/tuxENV/master/home/_pentadactylrc

將設定檔移至家目錄底下。

[ jonny@wheezy ~ ]
$ mv _pentadactylrc ~/.pentadactylrc

重開 Firefox (或於 Pentadactyl 底下使用 :source ~/.pentadactylrc 重新讀取設定 )。

註:以下設定需寫在 ~/.pentadactylrc 才可儲存。

圖形設定

	" 預設只顯示書籤列 (B)、顯示分頁編號 (N)、狀態列 (s)。
	:set guioptions=BNs

頁面捲動

	" 將 j, k 改成向下、上三行。
	map -modes=n j -builtin 3j	
	map -modes=n k -builtin 3k

	" 將 J, K 改成至向下、上半頁。
	map -modes=n J <C-d>		
	map -modes=n K <C-u>

	" 將 b 改成往上一頁 (原先為 buffer 的快捷鍵)。
	map -modes=n b <PageUp>

分頁切換

	map -modes=n <A-e> <C-S-e>	" Alt + e : 開啟群組分頁。
	map -modes=n <A-j> gt		" Alt + j : 前往下個分頁。
	map -modes=n <A-k> gT		" Alt + k : 前往上個分頁。

	" Alt + 1 : 前往第 1-5, 7-8 及最後一個分頁。
	map -modes=n <A-1> -builtin 1gt		
	map -modes=n <A-2> -builtin 2gt		
	map -modes=n <A-3> -builtin 3gt		
	map -modes=n <A-4> -builtin 4gt		
	map -modes=n <A-5> -builtin 5gt		
	map -modes=n <A-7> -builtin 7gt		
	map -modes=n <A-8> -builtin 8gt		
	map -modes=n <A-9> -builtin 99gt

快速推文。

	" sf : 將文章分章至 Facebook。
	map -modes=n sf o javascript:var%20d=document,f='http://www.facebook.com/share',l=d.location,e=encodeURIComponent,p='.php?src=bm&v=4&i=1253986134&u='+e(l.href)+'&t='+e(d.title);1;try{if%20(!/^(.*\.)?facebook\.[^.]*$/.test(l.host))throw(0);share_internal_bookmarklet(p)}catch(z)%20{a=function()%20{if%20(!window.open(f+'r'+p,'sharer','toolbar=0,status=0,resizable=1,width=626,height=436'))l.href=f+p};if%20(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else{a()}}void(0) <Return>

	" sp : 將文章分章至 Plurk。
	map -modes=n sp o javascript:%20void(window.open('http://www.plurk.com/m?qualifier=shares&content='%20.concat(encodeURIComponent(location.href))%20.concat('%20')%20.concat('(')%20.concat(encodeURIComponent(document.title))%20.concat(')'))); <Return>

依選取文字搜尋及前往。

	" 於當前分頁。
	map -modes=n o -js content.getSelection().toString()!=""?dactyl.execute(":open "+ content.getSelection()):Comm
	andExMode().open("open ")

	" 於新分頁。
	map -modes=n t -js content.getSelection().toString()!=""?dactyl.execute(":tabopen "+ content.getSelection()):C
	ommandExMode().open("tabopen ")

提示瀏覽 (surfing with hints)

normal mode 鍵入 f 及 F 時,Pentadactyl 會對所有的連結 (link) 進行提示 (hints),我們可透過鍵入 hints 的代號來開啟連結,其中 F 多了個背景開啟的屬性。

	" 將提示代號自訂為 asdfghjkl;。
	set hintkeys=asdfghjkl;
	
	" 字形、字體調整。
	hi Hint font:bold 16px monospace !important; margin:-.2ex; padding: 0 0 0 1px; outline:1px solid rgba(0, 0, 0, .5); background:rgba(255, 248, 231, .8); color:black; text-transform:uppercase;


▲ hints 截圖。

外部編輯器

任何的文字框 (Text Box) 按下 Ctrl + i 即可使用外部的 editor 編輯。有 Pentadactyl 接軌後就用不怕那些陽春的 editor 了。

	" GVim 
	set editor='gvim -f +<line> +"sil! call cursor(0, <column>)" <file>'

	" Bluefish
	set editor='bluefish'


▲ Ctrl + i 啟用外部編輯器。

緩衝區 (buffer) / 網頁切換

類似 TextMate 的 Cmd + T 以及 ctrlp.vim 的功能,可以於 normal mode 使用關鍵字搜尋並開啟網址。為求與 ctrlp.vim 相同的使用體驗,凍仁把原先快捷鍵 b 換成 Ctrl + p

	" 使用 Ctrl + p 開啟 buffer。
	map -modes=n,v <C-p> -builtin b


▲ buffer 比較:上為 Pentadactyl;下為 Vim。

相關連結:

« 回到 [完全用 GNU/Linux 工作]


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
凍仁翔
iT邦新手 3 級 ‧ 2013-10-01 03:04:45

倒數 19 天。終於幫手邊的第二把神兵 Pentadactyl 寫了篇完整的心得! 大家晚安 :D

我要留言

立即登入留言