Vim learning

Vim learning

Posted by fox on November 26, 2015

vim操作


  • 常用操作

    i - 光标插入

    x - 当前光标删除一个字符

    X - 删除当前光标前一个字符

    J - 删除两行之间的换行符s

    u - 撤销上一次操作

    U - 撤销当前行操作

    ctrl + r - 重做上一步,撤销的逆向

    a - 当前光标下追加

    o - 当前光标的下方新起一行并进入插入模式

    O - 当前光标的上方新起一行并进入插入模式

    h - 左

    j - 下

    k - 上

    l - 右

    以上4个方向如果前面带数字就表示移动多少 ,10j表示向下移动10行
    

    ZZ - 保存并退出,相当于 :wq

    w - 移动光标到下一个词首

    b - 移动光标到上一个词首

    e - 移动光标到下一个词末

    ge - 移动光标到上一个词末

    f +’字符’ - 移动到本行下一个该字符处

    % - 移动到括号匹配处(),包括[] 和 {}

    gg - 到第一行

    G - 到最后一行

    数字 + G - 到指定行 , 30G(定位到第三十行)

    ctrl+u - 向下滚动半屏 ,其实效果是往上翻半页

    ctrl+d - 向上滚动半屏 ,其实效果是往下翻半页

    ctrl+f - 正向滚动一整屏

    ctrl+b - 反向滚动一整屏

    ctrl+e - 向下滚动一行,相当于鼠标滚轮滑一下

    ctrl+y - 向上滚动一行,ctrl+e的逆向操作

    / + 单词 - 正向查找单词 , n - 下一处

    ? + 单词 - 逆向查找单词 , n -下一处

    把光标移到那个单词下面使用 “*” 命令。Vim 会取得光标上的 单 词并把它作为被查找的字符串。 “#” 命令在反向完成相同的功能。

    ”<” 只匹配单词的开头 ,”/<the”表示查找以the开头的词 “>” 匹配单词结尾, ,”/the>“表示查找以the结尾的词

    ^ + 单词 - 匹配一行,以单词开头的

    单词 + $ - 匹配一行,以单词结尾的

    可结合其他更强的正则表达式 . , ?, *等

    dw - 删除一个单词,若跟量词则删除对应个数的单词,比如d4w,删4个.注意它会删除从当前位置到光标移动到的目标位置的全部内容。

    xp - 当前光标字符和下一个字符交换位置

    yw - 拷贝当前词,包括空白字符,如果你不想要这个字符,改用 “ye” 命令.

    daw - 删除当前光标所在的单词,无论位于单词的哪个部分(delete a word)

    “R” 命令启动替换模式

    ~ - 修改光标下字符的大小写,并移动到下一个字符。这不是一个操作符 (除非设置了 ’tildeop’),所以你不能连接一个动作命令。这个命令在 可视模式下也有效,它会改变被选中的所有文本的大小写。

    I 移到当前行的第一个非空字符并启动插入模式。

    A 移动到行尾并启动插入模式。

    ctrl-v - 进入纵向编辑模式 >进入列编辑模式后,可以用hjkl或者其他命令来选择范围,也可以用w一个单词一个单词选择,最后进行操作,如果想批量插入,在进入列编辑选择了行之后,用I在行首插入

    :s/XXX/YYY/g - 替换当前行XXX为YYY

    :%s/XXX/YYY/g - 替换所有行XXX为YYY

    C - 修改当前行,会抹掉当前当前光标至行尾的内容,立即进入插入模式

    ct + 字母 - 修改当前光标到字母之间的内容,立即进入插入模式

    s - 替换当前字符,相当于 x+i,删掉当前字符立即进入插入模式

    cis - 删掉整行,移动到行首并进入插入模式

    p - 粘贴的起始位置从你当前光标位置之后开始,根据你拷贝的内容,你要么粘贴字符或单词,要么粘贴行或列。如果想撤销粘贴,使用通用撤销命令“u”就可以了。

    x + p -相当于剪切,vim的x会把删掉的存在缓冲区中,再粘贴就是刚才删掉的内容

    ddp - 快速交换两行位置

    ctrl+o+o - 插入模式中快速新起一行

    ctrl+w - 插入模式中删掉光标前一个单词

    ctrl+u - 插入模式中删掉光标所在行

    > 增加缩进,”x>”表示增加以下x行的缩进

    < 减少缩进,”x<”表示减少以下x行的缩进