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 閱讀(775) 評論(0)  編輯  收藏 所屬分類: VIM
          主站蜘蛛池模板: 龙州县| 定襄县| 乌鲁木齐市| 威宁| 夏河县| 吴川市| 普陀区| 云南省| 湖口县| 梁河县| 木里| 嘉善县| 凤阳县| 惠水县| 加查县| 波密县| 长武县| 布拖县| 怀仁县| 彭阳县| 平利县| 南宁市| 安泽县| 新晃| 茶陵县| 库伦旗| 乌鲁木齐市| 全州县| 潞城市| 旬邑县| 洪洞县| 汝南县| 临洮县| 长汀县| 太白县| 安康市| 华亭县| 运城市| 寻甸| 鄂温| 阳城县|