[轉(zhuǎn)帖]HOME 鍵
如何修改 Mac OS X 上的 Home End 鍵的默認(rèn)行為
2010年7月4日 由 磚家 留言 »
Mac 有一點(diǎn)讓我不爽的是 Home End 鍵的行為和其他系統(tǒng)都不一樣.
Windows/Linux 上的 Home End 鍵的行為都是跳到當(dāng)前行的行首和行尾, 但 Mac 上 Home End是跳到頁(yè)首和頁(yè)尾. 這點(diǎn)讓我很是郁悶, 特別是使用 Terminal 的時(shí)候, 經(jīng)常需要跳到行首修改命令行, 結(jié)果習(xí)慣性的就按下 Home, 結(jié)果整個(gè) buffer 就嗖的跳到頂端了, 無(wú)奈啊~~
經(jīng) Google, 找到 KeyFixer 這個(gè)小軟件來(lái)解決這個(gè)問(wèn)題, 為方便各位, 我把放在這里提供下載:
點(diǎn)擊下載 KeyFixer
點(diǎn)擊下載 KeyFixer for Firefox
也可以到到作者博客去下載, 地址是這個(gè): http://www.starryhope.com/tech/apple/2006/keyfixer/
使用方法很簡(jiǎn)單: 打開(kāi), 運(yùn)行 KeyFixer 即可(它會(huì)在 ~/Library/KeyBindings 目錄下創(chuàng)建一個(gè) DefaultKeyBinding.dict 文件, 如果該文件已經(jīng)存在, 需要先刪掉, 否則會(huì)提示修改失敗), 然后重啟你的應(yīng)用程序, 試試看 Home End 鍵的行為是不是已經(jīng)改變了? 不過(guò)該程序并不是對(duì)所有的程序都有效, 下面是作者列出的支持的列表:
TextEdit – 支持
TextMate – 支持
Pages – 支持
大部分文本編輯器 – 支持
Safari – 支持 (僅在表單文本框中有效)
Firefox – 不支持, 請(qǐng)下載 KeyFixer for Firefox 版本
iTunes – 不支持
安裝完畢之后, 我試了下, 發(fā)現(xiàn)… 除了這些程序之外, 我發(fā)現(xiàn)最想要的 Terminal 居然也不支持, 我擦~~~ 解決方法:
使用 CTRL+A 和 CTRL+E 來(lái)替代 Home 和 End, 這個(gè)我不喜歡, 我超級(jí)喜歡使用 Home End 和 Delete 三個(gè)按鍵的, 呵呵
修改 Terminal 的 KeyBindings, 具體如下:
1. 打開(kāi) Terminal => Preferences => Keyboard,
2. 在列表里找到 home, 雙擊編輯, 在彈出的窗口里把 Action 改成 “Send string to shell:”, 然后把光標(biāo)移底下的文本框中, 按下 CTRL + A, 點(diǎn) OK 確定.
3. 在列表里找到 end, 用同樣的方法修改, 不過(guò)在文本框里按 CTRL+E, , 點(diǎn) OK 確定.
現(xiàn)在在命令行里試試看, 確認(rèn)一下 Home End 鍵的行為是不是變成跳到行首和行尾了. 搞定收工.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
========================= 本文開(kāi)始 =============================
在用 Macbook 做文字編輯時(shí),因?yàn)楣P電鍵盤(pán)上沒(méi)有 HOME、END、PageUp、PageDn
等好用按鍵,所以在文件裡要移動(dòng)游標(biāo)時(shí),就只能靠方向鍵來(lái)逐字移動(dòng),感覺(jué)非常冏。
其實(shí),OS X 上有更便捷的方法。
mac 的文字編輯軟體有內(nèi)建 emacs 風(fēng)格的快捷鍵,但很多功能預(yù)設(shè)未啟動(dòng)。如果要
啟動(dòng),則要修改或創(chuàng)造 $HOME/Library/KeyBindings/DefaultKeyBinding.dict 檔案,
記得要將該檔案存為純文字檔。
推薦使用 nano 或者是 vim 等終端機(jī)底下的文字編輯軟體,即會(huì)以純文字檔來(lái)儲(chǔ)存。
$ mkdir ~/Library/KeyBindings
$ nano ~/Library/KeyBindings/DefaultKeyBinding.dict
或是用 mac 的文字編輯(TextEdit),但是要選擇「製作純文字格式」。
在 DefaultKeyBinding.dict 文件中,^ 代表 control 鍵,在文件中為 C;
~ 代表 option 鍵,在文件中為 M。另外要注意文件中的 :(冒號(hào))和
;(分號(hào))都是不可省略的。
{
"~f"="moveWordForward:"; /* M-f */
"~b"="moveWordBackward:"; /* M-b */
"~v"="pageUp:"; /* M-v */
"^v"="pageDown:"; /* C-v */
"~<"="moveToBeginningOfDocument:"; /* M-< */
"~>"="moveToEndOfDocument:"; /* M-> */
"~d"="deleteWordForward:"; /* M-d */
"~^h"="deleteWordBackward:"; /* C-M-h */
"^k"="deleteToEndOfLine:"; /* C-k */
"^u"="deleteToBeginningOfLine:"; /* C-u */
"^y"="yank:"; /* C-y */
"^j"="insertNewline:"; /* C-j */
"^/"="undo:"; /* C-/ */
"^_"="undo:"; /* C-_ */
"^g"="cancelOperation:"; /* C-g */
"~c"="capitalizeWord:"; /* M-c */
"~u"="uppercaseWord:"; /* M-u */
"~l"="lowercaseWord:"; /* M-l */
"^t"="transpose:"; /* C-t */
"~t"="transposeWord:"; /* M-t */
"~/"="complete:"; /* M-/ */
/* mark point stuff */
"^@"="setMark:"; /* C-@ */
"^ "="setMark:"; /* C-space */
"^w"="deleteToMark:"; /* C-w */
"^x" = {
"u"="undo:"; /* C-x u */
"k"="performClose:"; /* C-x k */
"^f"="openDocument:"; /* C-x C-f */
"^s"="saveDocument:"; /* C-x C-s */
"^w"="saveDocumentAs:"; /* C-x C-w */
"^x"="swapWithMark:"; /* C-x C-x */
"^m"="selectToMark:"; /* C-x C-m */
};
}
其中 "^x" = { } 裡的代表複合快捷鍵,以 "^x" 及 "^f" 為例,先按 Ctrl + x
再按 Ctrl + f。其他可以類(lèi)推。
檔案修改好後,先登出再重新進(jìn)入,即可使用 emacs 風(fēng)格快捷鍵。要注意如果檔案
有錯(cuò)誤的話(huà),即無(wú)法使用,這時(shí)請(qǐng)檢查 DefaultKeyBinding.dict 這個(gè)檔案,修改後
再重新登出及登入。
在 Page、Keynote 或文字編輯(TextEdit)中都可以使用 emacs 風(fēng)格快速鍵。但是
Microsoft Word 或 PowerPoint 中則無(wú)法使用。
設(shè)定完後,即可使用以下的 emacs 風(fēng)格快速鍵。注意其中混有少數(shù) readline 模式
快速鍵,和標(biāo)準(zhǔn) emacs 快速鍵略有不同,但操作後覺(jué)得順手,故如此設(shè)置。
實(shí)際用起來(lái),覺(jué)得移動(dòng)和刪除相關(guān)快速鍵最好用,至於區(qū)塊操作則因不會(huì)反白而顯得
不夠直覺(jué)好用,其他實(shí)用性普通,給各位參考。
移動(dòng)
C-f: 向右移動(dòng)一個(gè)字元(character)
C-b: 向左移動(dòng)一個(gè)字元
M-f: 向右移動(dòng)一個(gè)單字(word)
M-b: 向左移動(dòng)一個(gè)單字
C-p: 向上移動(dòng)一行
C-n: 向下移動(dòng)一行
C-a: 移到行首
C-e: 移到行尾
C-v: 向下移動(dòng)一頁(yè)
M-v: 向上移動(dòng)一頁(yè)
M-<: 移到檔首
M->: 移到檔尾
刪除
C-/: 回復(fù)一次動(dòng)作(readline 模式)
C-_: 回復(fù)一次動(dòng)作
C-x, u: 回復(fù)一次動(dòng)作
C-d: 向右刪除一個(gè)字元
M-d: 向右刪除一個(gè)單字
C-h: 向左刪除一個(gè)字元(readline 模式)
C-M-h: 向左刪除一個(gè)單字(readline 模式)
C-k: 自游標(biāo)刪至行尾
C-u: 自游標(biāo)刪至行首(readline 模式)
編輯
C-j: 插入空白行
C-y: 貼上刪除的內(nèi)容
區(qū)塊操作
C- (空白鍵): 設(shè)置區(qū)塊起始點(diǎn)(mark)
C-@: 設(shè)置區(qū)塊起始點(diǎn)
C-w: 刪除區(qū)塊
C-x, C-x: 將游標(biāo)位置置換到區(qū)塊尾端
C-x, C-m: 選取區(qū)塊
其他
M-u: 將單字轉(zhuǎn)為大寫(xiě)字母
M-l: 將單字轉(zhuǎn)為小寫(xiě)字母
M-c: 將單字字首轉(zhuǎn)為大寫(xiě)字母
========================= 本文結(jié)束 =============================
如果想要再擴(kuò)充或改良快速鍵,看來(lái)會(huì)牽涉到 cocca 程式設(shè)計(jì)。但實(shí)在是沒(méi)有 cocca
程式設(shè)計(jì)的經(jīng)驗(yàn),故希望有經(jīng)驗(yàn)的大大可以提供意見(jiàn)。
希望這篇文章對(duì)你有用。:-)
--
米寶寶的倉(cāng)庫(kù)
http://mimi-repo.blogspot.com/
linux 使用, 軟體應(yīng)用, 心情隨筆、生活雜記
建構(gòu)中,歡迎參觀