[教學] 在 Mac OS X 中編輯文件時好用的快速鍵

看板Editor (編輯器(vim/emacs))作者 (Neisseria)時間14年前 (2010/06/14 11:38), 6年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 MAC 看板 #1C59zM2d ] 作者: Neisseria (Neisseria) 站內: MAC 標題: [教學] 在 Mac OS X 中編輯文件時好用的快速鍵 時間: Sun Jun 13 17:05:23 2010 自己無意間發現原來 OS X 裡有幾個 emacs 風格的快速鍵,後來在一些 國外的部落格看到可以藉著簡單的設定檔來擴充快速鍵,但國內較少看到 此類文章,故分享之。 ========================= 本文開始 ============================= 在用 Macbook 做文字編輯時,因為筆電鍵盤上沒有 HOME、END、PageUp、PageDn 等好用按鍵,所以在文件裡要移動游標時,就只能靠方向鍵來逐字移動,感覺非常冏。 其實,OS X 上有更便捷的方法。 mac 的文字編輯軟體有內建 emacs 風格的快捷鍵,但很多功能預設未啟動。如果要 啟動,則要修改或創造 $HOME/Library/KeyBindings/DefaultKeyBinding.dict 檔案, 記得要將該檔案存為純文字檔。 推薦使用 nano 或者是 vim 等終端機底下的文字編輯軟體,即會以純文字檔來儲存。 $ mkdir ~/Library/KeyBindings $ nano ~/Library/KeyBindings/DefaultKeyBinding.dict 或是用 mac 的文字編輯(TextEdit),但是要選擇「製作純文字格式」。 在 DefaultKeyBinding.dict 文件中,^ 代表 control 鍵,在文件中為 C; ~ 代表 option 鍵,在文件中為 M。另外要注意文件中的 :(冒號)和 ;(分號)都是不可省略的。 { "~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。其他可以類推。 檔案修改好後,先登出再重新進入,即可使用 emacs 風格快捷鍵。要注意如果檔案 有錯誤的話,即無法使用,這時請檢查 DefaultKeyBinding.dict 這個檔案,修改後 再重新登出及登入。 在 Page、Keynote 或文字編輯(TextEdit)中都可以使用 emacs 風格快速鍵。但是 Microsoft Word 或 PowerPoint 中則無法使用。 設定完後,即可使用以下的 emacs 風格快速鍵。注意其中混有少數 readline 模式 快速鍵,和標準 emacs 快速鍵略有不同,但操作後覺得順手,故如此設置。 實際用起來,覺得移動和刪除相關快速鍵最好用,至於區塊操作則因不會反白而顯得 不夠直覺好用,其他實用性普通,給各位參考。 移動 C-f: 向右移動一個字元(character) C-b: 向左移動一個字元 M-f: 向右移動一個單字(word) M-b: 向左移動一個單字 C-p: 向上移動一行 C-n: 向下移動一行 C-a: 移到行首 C-e: 移到行尾 C-v: 向下移動一頁 M-v: 向上移動一頁 M-<: 移到檔首 M->: 移到檔尾 刪除 C-/: 回復一次動作(readline 模式) C-_: 回復一次動作 C-x, u: 回復一次動作 C-d: 向右刪除一個字元 M-d: 向右刪除一個單字 C-h: 向左刪除一個字元(readline 模式) C-M-h: 向左刪除一個單字(readline 模式) C-k: 自游標刪至行尾 C-u: 自游標刪至行首(readline 模式) 編輯 C-j: 插入空白行 C-y: 貼上刪除的內容 區塊操作 C- (空白鍵): 設置區塊起始點(mark) C-@: 設置區塊起始點 C-w: 刪除區塊 C-x, C-x: 將游標位置置換到區塊尾端 C-x, C-m: 選取區塊 其他 M-u: 將單字轉為大寫字母 M-l: 將單字轉為小寫字母 M-c: 將單字字首轉為大寫字母 ========================= 本文結束 ============================= 如果想要再擴充或改良快速鍵,看來會牽涉到 cocca 程式設計。但實在是沒有 cocca 程式設計的經驗,故希望有經驗的大大可以提供意見。 希望這篇文章對你有用。:-) ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.70.250.105

06/13 17:08,
fn+上下左右 不就是home,end,pageup,pagedown 嗎@@?
06/13 17:08

06/13 17:15,
我是用keyremap4macbook 將r-option改成fn鍵
06/13 17:15

06/13 17:16,
這樣 home,end,pageup,pagedown 只要用一隻手就可以解決
06/13 17:16

06/13 17:58,
..........Cocoa 軟體中 cmd 加上下左右 = 上一頁/下一頁
06/13 17:58

06/13 17:58,
移到行頭/移到行尾, 根本不是用 PgUp/PgDn/Home/End
06/13 17:58

06/13 19:01,
我比較好奇的是,程式結束的時候會問要不要存檔或取消
06/13 19:01

06/13 19:02,
return 確定, esc 取消, cmd d 不要儲存
06/13 19:02

06/13 19:02,
大部分這個時候按tab都沒有辦法移動焦點,只好用滑鼠…
06/13 19:02

06/13 19:04,
u大回得也太快了吧(汗)原來是cmd+d喔!!感謝~~~
06/13 19:04

06/13 20:10,
在 Cocoa 軟體裡,移到行首/尾是 ctrl+a/e
06/13 20:10

06/13 22:43,
可否借轉至Editor版?
06/13 22:43
※ 編輯: Neisseria 來自: 114.136.188.11 (06/14 11:22) ※ 編輯: Neisseria 來自: 114.136.188.11 (06/14 11:22) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.136.188.11 ※ 編輯: Neisseria 來自: 114.136.124.78 (06/14 12:05) ※ 編輯: Neisseria (111.250.58.187), 12/24/2018 18:50:38 ※ 編輯: Neisseria (111.250.58.187), 12/24/2018 18:51:20
文章代碼(AID): #1C5QHCHw (Editor)
文章代碼(AID): #1C5QHCHw (Editor)