删除相关

  • 删除光标处的单个字符

    x
    
  • 删除光标所在的行

    dd
    
  • 删除当前字符到单词尾包括空格的所有字符

    dw
    
  • 删除所有不包含字符的空行(空格也不包含)

    :g/^\s*$/d
    
  • 删除包含1的所有行

    :g/1/d
    
  • 删除不包含1的行

    :v/1/d
    
  • 删除不包含1或2或3或4的行

    :v/1\|2\|3\|4/d
    
  • 删除M(M要用ctrlv ctrlm来输入)

    :%s/^M$//g
    

复制相关

  • 命令复制当前整行的内容到vi缓冲区

    yy
    
  • 复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词

    yw
    
  • 复制光标所在位置到行尾内容到缓存区

    y$
    

搜索替换

  • 复制光标所在位置到行首内容到缓存区

    y^
    
  • 搜索,敲n向下搜索

    /
    
  • 搜索,敲n向上搜索

    ?
    
  • 当前行将1替换成2

    :s/1/2
    
  • 用2替换所有的1

    :g/1/s//2/g
    
  • 全文搜索1并替换成2

    :%s/1/2
    

跳转相关

  • 跳转到行首

    0
    
  • 跳转到行尾

    $
    
  • 向下卷动一屏

    C-f (forward)
    
  • 向上卷动一屏

    C-b (backward)
    
  • 向下半屏

    C-d (down)
    
  • 向上半屏

    C-u (up)
    
  • 跳转到第一行

    gg
    
  • 跳转到最后一行

    G
    
  • 跳转到n行

    :n
    

窗口操作

  • 窗口间切换

    ^w w
    
  • 跳转到左边窗口

    ^w h
    
  • 跳转到下面窗口

    ^w j
    
  • 跳转到上面窗口

    ^w k
    
  • 跳转到右边窗口

    ^w l
    
  • 跳转到最顶上窗口

    ^w t
    
  • 跳转到最底下窗口

    ^w b
    
  • 增大或缩小当前窗口

    ^w + -
    
  • 上面打开新窗口

    :split
    
  • 上面打开窗口编辑新文件

    :new
    
  • 关闭当前窗口

    :close
    
  • 关闭除当前的所有窗口

    :only
    
  • 左边打开新窗口

    :vsplit
    
  • 左边打开窗口编辑新文件

    :vnew
    

其他

  • 设置bom格式

    :set bomb
    
  • 设置无bom格式

    :set nobomb
    
  • 撤销上一步的操作

    u
    
  • 恢复上一步被撤销的操作

    ctrl_r