程序人生

          撰寫生活代碼,等待編譯美好人生
          隨筆 - 48, 文章 - 0, 評(píng)論 - 29, 引用 - 0
          數(shù)據(jù)加載中……

          VIM & Firefox


          今天整個(gè)下午都給了Firefox和VIM。一開始看了一篇VIM的文章,學(xué)習(xí)和復(fù)習(xí)了一些VIM的技巧,VIM永遠(yuǎn)都是這么強(qiáng)大,似乎總是有學(xué)不完的有趣的東西。搞了半個(gè)小時(shí)的VIM習(xí)慣了“hjkl”的操作,竟然看網(wǎng)頁(yè)的時(shí)候習(xí)慣性是去按h、j,試圖通過這兩個(gè)按鈕來滾動(dòng)網(wǎng)頁(yè)。于是便突發(fā)奇想能不能修改Firefox的熱鍵像VIM一樣。Google了一下,竟然有我這樣的想法的人還真不少。在一位老兄的Blog上列出了三種方法。我用了第一種,使用keyconfig擴(kuò)展。
          1. 首先到 http://mozilla.dorando.at 上安裝keyconfig.xpi插件(本文附件)
          2. 進(jìn)入~/.mozilla/firefox/[yours].default/目錄,編輯文件prefs.js,將一下內(nèi)容插入到文件末尾: user_pref("keyconfig.main.xxx_key_ScrollPageUp", "!][][][goDoCommand('cmd_scrollPageUp');"); user_pref("keyconfig.main.xxx_key_ScrollPageDown", "!][][][goDoCommand('cmd_scrollPageDown');"); user_pref("keyconfig.main.xxx_key_ScrollLineUp", "!][][][goDoCommand('cmd_scrollLineUp');"); user_pref("keyconfig.main.xxx_key_ScrollLineDown", "!][][][goDoCommand('cmd_scrollLineDown');"); user_pref("keyconfig.main.xxx_key_ScrollLeft", "!][][][goDoCommand('cmd_scrollLeft');"); user_pref("keyconfig.main.xxx_key_ScrollRight", "!][][][goDoCommand('cmd_scrollRight');"); user_pref("keyconfig.main.xxx_key_ScrollTop", "!][][][goDoCommand('cmd_scrollTop');"); user_pref("keyconfig.main.xxx_key_ScrollBottom", "!][][][goDoCommand('cmd_scrollBottom');"); user_pref("keyconfig.main.xxx_key_findTypeLinks", "!][][][goDoCommand('cmd_findTypeLinks');");
          3. 先關(guān)閉firefox,然后再保存修改過的prefs.js文件。否則,firefox關(guān)閉后會(huì)清空 firefox的剪貼板,同時(shí)重寫prefs.js文件,所以需要先復(fù)制上面的代碼,再關(guān)閉firefox,最后保存prefs.js文件。
          4. 重新啟動(dòng)firefox,在tools->keyconfig中設(shè)置相應(yīng)的快捷鍵。
          hjkl解決了,但是我還希望能像vim那樣有命令模式,這似乎網(wǎng)上還沒有人實(shí)現(xiàn),有空想研究一下Firefox的插件把這功能搞出來。:)

          順便把今天下午看的VIM文章Efficient Editing With vim學(xué)到的新知識(shí)總結(jié)一下:

          1.可視模式的新發(fā)現(xiàn):
          • 剛接觸VIM得時(shí)候就已經(jīng)開始使用“V”了,但是<C - v>這特性幾天才知道。這個(gè)快捷鍵按下之后可以選定任意的文字塊。注意,是任意的,不會(huì)受行的限制。
          • 使用ma可以在某一行創(chuàng)建標(biāo)記,在普通模式則直接m后跟字幕就可以創(chuàng)建一個(gè)標(biāo)記,例如:mk,在當(dāng)前行創(chuàng)建了一個(gè)名為k的標(biāo)記
          • 普通模式使用'(單引號(hào))后跟標(biāo)記名,可以快速轉(zhuǎn)到標(biāo)記的行。例如: 'k,光標(biāo)會(huì)自動(dòng)定位到標(biāo)記名為k的行
          • 在命令模式使用:marks可以查看當(dāng)前的所有標(biāo)記
          • '.可以跳轉(zhuǎn)到最后一次的編輯點(diǎn)。
          3.重復(fù)
          • 普通模式下使用.(句號(hào))可以重復(fù)上一次的命令。
          4.使用多剪貼板
          • 操作方式:使用"(雙引號(hào))+寄存器名+操作。
          • 把內(nèi)容存入剪貼板:例如:"qyy,使用名為q的寄存器作為剪貼板保存當(dāng)前行。
          • 從剪貼板中取內(nèi)容:例如:"qp, 從名為q的寄存器中取出內(nèi)容,作為粘貼的內(nèi)容來粘貼。
          5.編寫代碼時(shí)常用命令
          • ]p 自適應(yīng)粘貼,跟普通p的功能一樣。
          • % 在普通模式,當(dāng)光標(biāo)處于某個(gè)括號(hào){},大括號(hào)(),中括號(hào)[]上時(shí),按下%光標(biāo)會(huì)跳到該括號(hào),大括號(hào),中括號(hào)的另一? 相匹配的部份。
          • >>和<< 向左、向右縮進(jìn)。
          • gd Go to the definition (or declaration), 普通模式,在某個(gè)變量或者方法名上使用該命令,會(huì)高亮代碼中所有該變量或方法,然后可以通過n和N來跳轉(zhuǎn)光標(biāo)到這些變量上。

          posted on 2007-01-11 20:45 405 Studio 閱讀(991) 評(píng)論(0)  編輯  收藏 所屬分類: LIVELINUX

          主站蜘蛛池模板: 江城| 阳西县| 青铜峡市| 闸北区| 博客| 赤城县| 合江县| 颍上县| 东源县| 静宁县| 牟定县| 乐东| 磴口县| 鹿泉市| 焦作市| 安仁县| 永和县| 平武县| 景泰县| 玉林市| 通州市| 金阳县| 琼海市| 宜兴市| 东台市| 朝阳市| 广平县| 罗平县| 安丘市| 迁西县| 如东县| 本溪| 石棉县| 高安市| 财经| 衡东县| 连山| 大宁县| 丰台区| 赤壁市| 皮山县|