vim

vim

fetch150zy

宇宙第一编辑器

Vim

普通模式

光标移动

  • ==h j k l== 左 下 上 右
  • ==ctrl-b== page up
  • ==ctrl-f== page down
  • ==:%== 跳到匹配的大括号
  • ==w W== 跳到下一个单词首(W不包含符号)
  • ==**e E **== 跳到下一个单词尾(E不包含符号)
  • ==b B== 跳到上一个单词首(B不包含符号)
  • ==0== 跳到行首
  • ==^== 跳到该行第一个字符
  • ==$== 跳到该行最后一个字符
  • ==gg== 跳到第一行
  • ==[N]G== 跳到第N行,不加N时跳到最后一行
  • ==fx== 到下一个字符为x的位置
  • ==tx== 到下一个字符为x的前一个位置
  • ==Fx== 到前一个字符为x的位置
  • ==× #== 显示当前游标下的所有字符串
  • ==`.== 回到上一次编辑的位置
  • ==H M L== 跳到当前页面的上,中,下处
  • ==ma== 在光标处标记,命名为a
  • ==`a== 跳到标记处

编辑

  • ==**r **== 替换单个字符
  • ==J== 把当前行下面一行加到改行后面
  • ==cc== 改变一整行
  • ==**cw **== 改变当前位置到单词末尾
  • ==c$== 改变当前位置到行该末尾
  • ==s== 删除当前字符并进入插入模式
  • ==S== 删除一整行并进入插入模式
  • ==xp== 剪切粘贴(交换两个字符)
  • ==u== 撤销
  • ==ctrl-r== 和撤销相反
  • ==.== 重复上条命令
  • ==~== 切换大小写
  • ==g~iw== 对整个单词切换大小写
  • ==gUiw== 对当前单词切换为大写
  • ==guiw== 对当前单词切换为小写
  • ==>>== 右移
  • ==<<== 左移
  • ====== 自动对齐(按标准格式化对齐)

剪切和粘贴

  • ==dd== 删除(剪切)一整行
  • ==dw== 删除当前光标下的单词
  • ==x== 删除当前字符
  • ==X== 删除前一个字符
  • ==D== 删除到该行最后
  • ==yy== 复制一整行
  • ==[N]yy== 复制N行
  • ==yw== 复制一个单词
  • ==y$== 复制到该行末尾
  • ==p== 粘贴在光标之后
  • ==P== 粘贴在光标之前
  • ==]p== 自动粘贴到合适的位置

插入模式

基本编辑操作

  • ==i== 在游标位置进入插入模式

  • ==I== 在当前行首进入插入模式

  • ==a== 在游标之后位置进入插入模式

  • ==A== 在当前行尾进入插入模式

  • ==o== 在当前行下面插入一行并进入插入模式

  • ==O== 在当前行上面插入一行并进入插入模式

  • ==Esc== 推出插入模式并进入普通模式

可视模式

基本操作

  • ==v== 字符可视模式
  • ==V== 行可视模式
  • ==ctrl-v== 块可视模式
  • ==o== 移动光标到标记文本的对角
  • ==U== 把标记区域切换为大写
  • ==O== 移动光标到标记文本的另一侧
  • ==aw== 标记一个单词
  • ==ab== 标记包括小括号在内的文本
  • ==aB== 标记包括大括号在内的文本
  • ==ib== 标记小括号内的文本
  • ==**iB **== 标记大括号内的文本

命令行

  • ==< >== 左移,右移
  • ==y== 复制
  • ==d== 删除
  • ==~== 大小写切换

命令模式

查找替换

  • ==/pattern== 向后查找pattern
  • ==?pattern== 向前查找pattern
  • ==n== 重复同向搜索
  • ==N== 重复反向搜索
  • ==:s/old/new/g== 替换整个文件里面的old文本为new文本
  • ==:s/old/new/gc== 与上面的不同之处在于需要挨个确认

退出

  • ==:w== 保存
  • ==:wq== 保存并退出
  • ==:x== 保存并退出
  • ==:q== 退出(未保存的话退出失败)
  • ==:q!== 强制退出

多文件操作

  • ==:e filename== 在一个新的流中编辑文件
  • ==:bn== 去到下一个流中
  • ==:bd== 关闭一个文件
  • ==:sp fn== 在一个新的流中打开文件并分窗
  • ==ctrl-w s== 分窗(水平)
  • ==ctrl-w w== 切换窗口
  • ==ctrl-w q== 退出一个窗口
  • ==ctrl-w v== 分窗(垂直)
  • ==:tabe fn== 在新tab里编辑文件
  • ==gt== 切换到下一个tab
  • ==gT== 切换到前一个tab
  • ==:tabr== 切换到第一个tab
  • ==:tabl== 切换到最后一个tab
  • ==:tabm [N]== 切换到tab N之后