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
          主站蜘蛛池模板: 亚东县| 浦县| 新巴尔虎左旗| 仲巴县| 松原市| 扎兰屯市| 会东县| 驻马店市| 定结县| 社旗县| 习水县| 万山特区| 萍乡市| 肥城市| 开化县| 呼伦贝尔市| 灵寿县| 寿光市| 康平县| 沅江市| 大厂| 桐乡市| 平谷区| 万安县| 攀枝花市| 阜平县| 兴化市| 自贡市| 高雄市| 泰顺县| 石城县| 闽清县| 海盐县| 婺源县| 长垣县| 徐州市| 清水河县| 遵义市| 宁津县| 铅山县| 含山县|