Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯系 :: 聚合  :: 管理

          接下來, 我們要將文本的偶數行修改為: This?is?another?test。 由于所有的偶數行都要進行同樣的操作, 因此我們把這個操作錄制下來, 然后重復播放若干遍, 就能很快地完成這項工作了。

          首先, 按幾下 ESC 確認處在 Normal 模式下, 再按下 gg 跳到第一行, 準備開始操作。 我們首先按下 q 鍵, 然后再按一個其它字母, 將這個宏錄制到該字母對應的寄存器下。 例如我們這里使用 m 寄存器, 則按 qm。 此時 VIM 狀態欄出現“recording”字樣, 表明已經進入了錄制狀態。

          然后, 我們把第二行的 a 修改為 another。 首先按 j 進入第二行, 然后按 $ 跳到行末, 再按兩下 b 往前跳兩個單詞, 此時光標停在字母 a 上。 然后我們按下 caw 鍵刪除 a 并進入插入狀態, 然后輸入 another?, 按 ESC 回到 Normal 狀態, 按 j 進入下一行, 整個操作步驟就完成了。 最后, 我們再按一下 q, 結束該宏的錄制。

          接下來我們播放這個宏, 完成整個操作步驟。 在鍵盤上輸入 1000@m, 表示將 m 寄存器里的宏播放 1000 次, 馬上可以看到, 文章中所有偶數行的 a 都變成了 another

          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test

          解說: 雖然我們指定播放 1000 次, 但事實上, 執行到第 6 次的時候, 光標挪到了屏幕最下方, 于是執行過程就自動停止了。 因此, 在批量操作的時候, 我們可以指定足夠大的數字, 而不用擔心出現問題。

          另外, 修改 a 的時候, 我們跳到行末后再使用 b 命令以單詞為單位跳轉, 而沒使用 h 一個字母一個字母往回挪, 我們使用 caw 修改整個單詞, 而不使用 s 命令刪除單個字母并進入 Insert 模式。 這些細節可以保證錄制得到的宏更具有一般性。

          轉自http://edyfox.codecarver.org/html/vim_edit_tips.html

          如何保存宏?

          posted on 2011-06-09 16:33 calvin 閱讀(769) 評論(0)  編輯  收藏 所屬分類: VIM
          主站蜘蛛池模板: 蓝田县| 娱乐| 惠安县| 铅山县| 屯门区| 三江| 沾化县| 北流市| 石渠县| 江华| 广汉市| 安陆市| 彰化市| 察隅县| 焦作市| 河津市| 南漳县| 正定县| 长汀县| 长兴县| 金沙县| 东丰县| 江西省| 贵定县| 阿克陶县| 耿马| 山东| 武乡县| 建阳市| 陆河县| 板桥市| 通河县| 海林市| 大石桥市| 忻州市| 静海县| 安塞县| 怀集县| 来凤县| 仁化县| 江源县|