關於emacs和鍵盤

大約四年前淘汰自己的神舟學生本後,我就很討厭使用筆記本了。因爲那彆扭的小鍵盤實在沒有碼字的快感。

我算是一個emacs中毒已深的用戶,所以對鍵盤這個外設有自己的特別要求。

當使用筆記本時,除了外接鍵盤外,只能使用Caps代替Ctrl才能減少自己的旦騰次數。


重度使用emacs約有五年了,我一直希望像jwz一樣把自己的手指用殘,同時實現經濟自足,開個酒吧之類的。

後來發現jwz是少數幸運兒,就打消念頭,設法在自己混出世之前Hold住雙手不得什麼RSI。

我的方法也很簡單,就是不斷變換指法和嘗試更好的鍵盤。


用emacs最關鍵是你怎麼按ctrl,最初我是caps-ctrl互換,後面爲了方便和別人的溝通演示,就把caps 左ctrl同定義,再把不常用的app鍵定成caps原有的功能。這樣相安無事用了二年多,左手小指開始以偶發的痛感報復我了。好吧,於是我開始用alt-ctrl互換的方法。

這是我改行做browser開發之後的事情。似乎新工作更忙,所以一年左右以後,姆指也開始痛感報復。這時我回想一年來沒有同事可以借用我的電腦(alt-ctrl互換其他人很不習慣),所以我開始完全不做任何鍵盤重定義,只用手掌根部分別按ctrl,這個方法看起來很健康了。

但還是沒撐夠一年,右手腕也開始報復。


這期間我換過不少鍵盤,從有線換到無線,又下狠心買了個微軟的人體工程4000鍵盤。到右手腕痛時,我開始使用cherry原裝的茶軸機械鍵盤。

我總結一下目前對鍵盤的看法吧。。


一般的是薄膜鍵盤,文藝的是機械鍵盤,還有就是微軟的人體工程4000鍵盤(這個鍵盤我昨天拆開來看了一下,發現最最最重要的空格鍵那麼大的空間,居然只有一個薄膜觸點,而這麼設計竟是爲了拆卸,這是我見過的最213的設計)。。。


其實我也不是非常喜歡天天拿emacs說事,只是這東西是我作爲程序員的一個工作環境。

在我用ack、perl、c++、lisp、shell、ssh、id-util、ndk-gdb時由於都是在emacs當中,於是不由得習慣用emacs來指代我所做的一切。


對於其他人問我爲什麼一直使用emacs,最近我的回答是:

這個編輯器發展的時候比我歲數還大,幾乎所有你想要的功能,她都有支持。


其中最近的一個例子是:一個同事最近在研究一份巨大的代碼,他想就地添加註釋,但是又不想改動這些文件。問我有什麼工具。

一開始我推薦用mercurial做一個版本記錄(但這方法本質上修改了文件,只是能還原而已)。後來在google上找了找inplace annotations emacs

直接找到一種成熟的emacs擴展。叫ipa   http://www.emacswiki.org/emacs/InPlaceAnnotations

手工加一些定製,這個功能立即添加到emacs當中。這是沒有相關經驗的人難以想象的。

(when (require 'ipa nil 'noerror)
  (require 'cl)
  (global-set-key (kbd "C-c a i") 'ipa-insert)
  (global-set-key (kbd "C-c a e") 'ipa-edit)
  (global-set-key (kbd "C-c a n") 'ipa-next)
  (global-set-key (kbd "C-c a p") 'ipa-previous)
  (global-set-key (kbd "C-c a s") 'ipa-show)
  (global-set-key (kbd "C-c a j") 'ipa-jump)
  (global-set-key (kbd "C-c a c") #'(lambda ()
                                    (interactive)
                                    (when (y-or-n-p "sure to delete all ipa note?")
                                      (save-excursion
                                        (goto-char 0)
                                        (let (ann)
                                          (while (setq ann (ipa-next))
                                            (delete-overlay (car ann))
                                            (setq ipa-annotations-in-buffer
                                                  (delq ann ipa-annotations-in-buffer))
                                            (goto-char 0))))
                                      (message "Cleared annotation.")
                                      (ipa-save-annotations-if-necessary t)))))

在相關的搜索中,還發現deft和org-annotate-file這樣強大的記錄工具。


對於一個喜愛編程的人來說,用一個可編程能力最強的環境來工作,不亦樂乎??

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章