1. 程式人生 > 其它 >Vim騷操作:使用q記錄器,大大提高效率

Vim騷操作:使用q記錄器,大大提高效率

技術標籤:Vimvim

文章目錄




vim中的記錄器可以用來記錄文字操作時大量重複性的勞動,從而後面直接使用快捷鍵就行,騷操作可以大大簡化勞動力。

此部落格只是簡單舉例2個,而Vim記錄器使用廣泛不止於此,其他使用場景請體會後自行斟酌。比如這個部落格【Vim生成一列連續按規則遞增遞減的數字

大體來說,vim記錄器使用流程如下:

1. 開啟記錄器     #按下q開啟記錄器跟一個按鍵即可,如:qa表示將後續操作記錄與按鍵a中
2. 開始vim騷操作  #操作文字
3. 關閉記錄器 #再按q表示退出記錄器, 4. 重複執行記錄器 #然後重複執行則按下【@a】即可在執行一次按鍵a中記錄的動作。

下面通過兩個小例子來簡述記錄器的使用

備註:下面例子需要有vim快速註釋外掛【NerdCommenter】結合一起使用,安裝與使用方法這裡不再贅述。




一、批量反註釋

1.1 先上動圖感受感受

1.2 操作步驟

  1. 按順序執行如下操作

    qa            #開啟記錄器
    
    shift+v       #選中當前行
    2j            #游標下移2,c空格         #註釋選中的文字
    
    f[            #游標跳轉到字元 [
    ctrl+v #進入多行操作模式 2jk #游標下移2行並右移一個字元 s / * ESC #替換成*/,並進入普通模式 f< #游標跳轉到字元 < ctrl+v #進入多行操作模式 2jk #游標下移2行並右移一個字元 */ESC #替換成*/,並進入普通模式 5j0 #游標下移5行,並跳轉到行首 q #退出記錄器 @a #重複執行 @a #重複執行 @a #重複執行 @a #重複執行 @a #重複執行 @a #重複執行



二、批量註釋

2.1 先上動圖感受感受

2.2 操作步驟

  1. 按順序執行如下操作

    qa
    
    shift+v
    2j
    ,c空格
    5j
    
    q
    
    @a
    @a
    @a
    @a
    @a
    @a
    



附錄:部落格動圖中操作的示例程式碼

  1. 動圖中示例程式碼:

        linux,keymap = <
            /*row0*/
            0x00000069  /* Qt.Key_Left  -> HEX:69 -> DEC:105 -> KEY_LEFT  */
            0x0001006C  /* Qt.Key_Down  -> HEX:6C -> DEC:108 -> KEY_DOWN  */
            0x0001006C  /*  Reserved                                      */
    
            /*row1*/
            0x01000067  /* Qt.Key_Up    -> HEX:67 -> DEC:103 -> KEY_UP    */
            0x0101006A  /* Qt.Key_Right -> HEX:6A -> DEC:106 -> KEY_RIGHT */
            0x0001006C  /*  Reserved                                      */
    
            /*row2*/
            0x0200004D  /* Qt.Key_M     -> HEX:4D -> DEC:77  -> KEY_KP6   */
            0x02010058  /* Qt.Key_X     -> HEX:58 -> DEC:88  -> KEY_F12   */
            0x0202001C  /* Qt.Key_Return-> HEX:1C -> DEC:28  -> KEY_ENTER */
    
            /*row3*/
            0x0300004E  /* Qt.Key_N     -> HEX:4E -> DEC:78  -> KEY_KPPLUS*/
            0x0301004F  /* Qt.Key_O     -> HEX:4F -> DEC:79  -> KEY_KP1   */
            0x03020049  /* Qt.Key_I     -> HEX:49 -> DEC:73  -> KEY_KP9   */
    
            /*row4*/
            0x04000008  /* Qt.Key_7     -> HEX:08 -> DEC: 8  -> KEY_7     */
            0x04010009  /* Qt.Key_8     -> HEX:09 -> DEC: 9  -> KEY_8     */
            0X0402000A  /* Qt.Key_9     -> HEX:0A -> DEC:10  -> KEY_9     */
    
            /*row5*/
            0x05000005  /* Qt.Key_4     -> HEX:05 -> DEC: 5  -> KEY_4     */
            0x05010006  /* Qt.Key_5     -> HEX:06 -> DEC: 6  -> KEY_5     */
            0x05020007  /* Qt.Key_6     -> HEX:07 -> DEC: 7  -> KEY_6     */
    
            /*row6*/
            0x06000002  /* Qt.Key_1     -> HEX:02 -> DEC: 2  -> KEY_1     */
            0x06010003  /* Qt.Key_2     -> HEX:03 -> DEC: 3  -> KEY_2     */
            0x06020004  /* Qt.Key_3     -> HEX:04 -> DEC: 4  -> KEY_3     */
    
            /*row7*/
            0x0700002D  /* Qt.Key_Minux -> HEX:2D -> DEC:45  -> KEY_X     */
            0x0701000B  /* Qt.Key_0     -> HEX:0B -> DEC:11  -> KEY_0     */
            0x0702002E  /* Qt.Key_Period-> HEX:2E -> DEC:46  -> KEY_C     */
            >;   
        gpio-activelow;
        status = "okay";