Vim: Repeat previous motion?

前端 未结 4 922
梦毁少年i
梦毁少年i 2021-02-01 12:15

Let\'s say that I\'m in visual mode, and I type \"aw\" to extend the visual area to include the next word. I\'d like to then include the next couple of words. Is there a singl

相关标签:
4条回答
  • 2021-02-01 12:50

    Well there is a command to repeat every motion made with f,t,F or T Remember that
    fx takes to the next occurrence of the character x
    Fx takes to the previous ocurrence of x
    tx takes you to the character before the next occurrence of x
    Tx takes you you to the character after the previous occurrence of x
    to repeat those motions press

    ;
    

    to repeat them backwards (in the oposite direction) press

    ,
    
    0 讨论(0)
  • 2021-02-01 12:53

    Instead of repeating the motion, there is a plugin for expanding regions via + and shrinking _: https://github.com/terryma/vim-expand-region

    0 讨论(0)
  • 2021-02-01 12:56

    There are some plugins that provide this functionality:

    • repmo.vim: repeat motions for which a count was given
    • repeatable-motions.vim: Make most motions repeatable
    • repmo.vim: give vim support of repeat motion operations (k,j, h,l, w,b, W,B, e,E, ge,gE)
    0 讨论(0)
  • 2021-02-01 13:02

    NO PLUGINS use ;.

    Here's a detailed example:

    int function1(){
       some code here;
       ...
       ...
       return 0;
    }
    
    int function2(){
       some code here;
       ...
       ...
       return 0;
    }
    

    Now let's say you want to rewrite the part inside {} for function1 and function2.

    • Place your cursor somewhere inside the {}
    • From Normal Mode (ESC or ctrl+c), press di} (for "delete" "inner" "{")
    • Now you've deleted everything in the function
    • Now bring your cursor inside the {} of function2
    • Press ;.

    For visual mode, I think macros is your only option (maybe overkill for aw)

    • To start recording a macro, press q + q (that last q can be any letter. It's where you macro will be saved)
    • ... do the actions you want to repeat ...
    • Press q again to stop recording

    To replay these actions (even in visual mode):

    • @q (or whatever letter you saved it to)

    To replay the actions 99 times:

    • 99@q (or whatever letter you saved it to)
    0 讨论(0)
提交回复
热议问题