<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jasmine214--love

    只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    VIM 技巧集 1

    Posted on 2011-01-27 14:31 幻海藍夢 閱讀(209) 評論(0)  編輯  收藏 所屬分類: Linux

    ------------------以下是網上 發現的很好的VIM 操作 ,很有用 -----------------------------------------------

    本網頁收集了一些簡單的 VIM 操作, 這些操作要么其它普通文本編輯器不能完成, 要么完成起來很慢。 通過本網頁, 可以堅定初學者學習 VIM 的決心與信心。 如果你有什么好的易于演示的簡易技巧, 請與滇狐聯系, 將更多內容添加到這張網頁中。

    另外, 如果沒有明確說明, 本文中的提到的按鍵均是大小寫敏感的。 例如, 文中提到“按下 G”時, 你按的鍵應該是“Shift + G”。

    1 準備工作

    首先, 我們打開 VIM, 輸入一段文本, 用于今天的演示:

    this is a test

    2 查找替換

    按幾下 ESC 進入 Normal 模式, 輸入以下命令: :%s/ /\r/g。 回車后得到的效果如下:

    this
    is
    a
    test

    解說: 這條命令的作用是, 將文章中所有的空格替換為回車。 幾乎所有的編輯器都支持查找替換, 但并不是所有的編輯器都支持把空格替換為回車, 因此這個功能在許多別的編輯器里做起來是比較繁瑣的。

    3 行的拼接

    剛才我們把一行文字打碎為 4 行了, 那如何再把它們拼接起來呢? 當然, 我們可以通過前面說的查找替換的方式, 將回車再替換為空格, 實現行的拼接。 但是, 這里我們用的是另一種方式。

    按幾下 ESC 進入 Normal 模式, 然后輸入這段命令: ggVGgg 表示跳到文本開頭, V 表示進入行選擇模式, G 表示選擇到文章末尾。 通過這 3 條命令, 總共 4 個按鍵, 我們選中了整篇文章。

    然后, 按下冒號 : 進入命令模式, 狀態欄上出現: :'<,'>字樣, 在它后面輸入 j, 然后回車, 可以看到, 整篇文章又被拼接起來了, 整個操作包括回車只按了 7 次鍵:

    this is a test

    4 復制粘貼與重復動作

    按幾下 ESC 確認當前處在 Normal 模式下, 然后按 yy, 即可將當前行復制到默認寄存器中 (相當于剪貼板)。 然后按下 12p, VIM 將執行粘貼動作 12 次, 屏幕上出現了 13 行這樣的字符:

    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test
    this is a test

    解說: 在 VIM 中, 復制和粘貼操作相當快捷。 另外, VIM 中大部分命令都可以通過在命令前加數字重復若干遍。

    5 列操作

    接下來我們把每一行的開頭第一個字母改為大寫。

    按幾下 ESC 確認當前處在 Normal 模式下, 然后按 gg 跳到第一行, 按下 Ctrl + v 進入列選擇模式 (如果你按下 Ctrl + v 沒能進入列選擇模式, 請看這里), 然后按 G, 跳到文章最后一行, 此時你應該看到, 文本的第一列被選中了, 而且只選中了第一列。 按下 U 鍵, 可以看到, 每行的第一個字母都變為大寫了。 提示: 選中文本后按 u 可以將文本變為小寫, 選中文本后按 ~ 可以翻轉原有的大小寫。

    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test
    This is a test

    然后, 我們在每行的前面加上一個星號。 按下 gg 跳到第一行, 按 Ctrl + v 進入列選擇模式, 再按 G, 選中全文的第一列, 然后按 I, 進入列插入狀態, 輸入星號 *, 再按下 ESC, 你會看到, 所有行之前都出現了一個星號:

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

    解說: 對于編寫程序的人來說, 把一段代碼批量注釋掉是一個很常見的操作, 使用列插入可以很容易地做到這一點。 另外, 列選擇后按 x 刪除被選中的塊, 可以批量地解除注釋。

    6 宏的錄制

    接下來, 我們要將文本的偶數行修改為: 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 模式。 這些細節可以保證錄制得到的宏更具有一般性。

    7 點命令

    接下來, 我們在每行的末尾加上一個感嘆號 !

    由于每行長度不同, 我們無法使用塊選擇方式批量尾部添加感嘆號。 使用宏錄制的方式是可以做到這點的, 但操作稍嫌繁瑣了一些。 使用點命令, 可以非常方便地做到這一點。

    先按幾下 ESC 確認當前出于 Normal 模式, 然后使用 gg 跳到第一行, 按 A 進行行尾插入, 輸入 !, 然后按下 ESC 回到 Normal 狀態, 第一行的感嘆號就添加完畢了。

    然后, 我們按 j 進入第二行, 再按 ., 可以看到, 第二行尾部也出現了感嘆號。 反復按 j.j.j., 直到每一行尾部都添加了感嘆行為止。

    *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!

    解說: 點命令的作用是, 重復最近一次所做的編輯操作。 由于在第一行里做的操作是行尾添加, 因此在第二行重復這個動作的時候, 也會在行尾添加同樣的字符。 點命令功能不如宏強大, 但它使用起來比宏簡便, 因此也有著廣泛的用途。

    原文:http://edyfox.codecarver.org/html/vim_edit_tips.html

    ---------------------------------------------------------------------------------------------------------------------



    主站蜘蛛池模板: 国产成人亚洲精品播放器下载 | 日韩在线免费播放| 91嫩草亚洲精品| 最近2019免费中文字幕6| 亚洲va无码va在线va天堂| 国产免费黄色无码视频 | 特级做A爰片毛片免费69| 七次郎成人免费线路视频 | 免费v片视频在线观看视频| 亚洲精品无码久久| 精品久久久久久久免费人妻| jiz zz在亚洲| 免费高清在线影片一区| 亚洲色大情网站www| 国产精品无码素人福利免费| 久久无码av亚洲精品色午夜 | 午夜成人无码福利免费视频| 免费在线观看一级毛片| japanese色国产在线看免费| 中文字幕第13亚洲另类| 在线免费观看伊人三级电影| 亚洲成AV人片在线观看| 日韩精品无码免费一区二区三区| 亚洲高清资源在线观看| 四虎国产精品免费久久| 亚洲AV日韩AV无码污污网站 | 免费精品国产自产拍在| 亚洲国产精品精华液| 伊在人亚洲香蕉精品区麻豆| 亚洲精品人成电影网| 毛片免费在线播放| 成年免费a级毛片| 久久精品夜色国产亚洲av| 免费观看的毛片大全| 国产区图片区小说区亚洲区| 亚洲无线码一区二区三区| 99在线视频免费| 亚洲精品理论电影在线观看| 一本色道久久综合亚洲精品| ww在线观视频免费观看| 国产天堂亚洲国产碰碰|