vim常用命令

www.allocmem.com · · 4506 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

三模式

  1. 命令模式 (command mode) -> 默认模式
  2. 插入模式 (insert mode)-> i 进入
  3. 底行模式 (last line mode) -> 输入 :

常用命令

光标移动

  1. 使用上下左右方向键
  2. 命令模式下:h向左、j向下 、k向上、l向右。

插入文本或行

vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式

  1. a -> append ->在当前光标位置的右边添加文本,比如字符串为test,光标框住的s,即输入aa,则变为tesat
  2. i -> insert model ->在当前光标位置的左边添加文本,比如字符串为test,光标框住的i,即输入ia,则变为teast
  3. A ->Append at eol ->在当前行的末尾位置添加文本,比如字符串为test,光标框住的i,即输入Aa,则变为testa
  4. I -> Insert at bol ->在当前行的开头位置添加文本,比如字符串为test,光标框住的i,即输入Ia,则变为atest
  5. O -> Open above ->在当前行的上面新建一行,光标移动到新建行行首
  6. o -> open below ->在当前行的下面新建一行,光标移动到新建行行首
  7. R® -> replace mode->替换(覆盖)当前光标位置及后面的若干文本,输入一个字符,则替换当前框住的字符,并跳到下一个字符。
  8. J(大写) -> join lines-> 合并光标所在行及下一行为一行,和光标位置无关,第一行test,第二行abc,使用J后后并为test abc一行

视觉模式

  1. v ->选中一个或多个字符,可使用其他辅助方向键调整
  2. V ->选中一行,可使用其他辅助方向键调整

删除、剪切、恢复字符或行

  1. x -> delete char ->删除(同剪切)当前字符,X是反向向前移动 .
  2. nx(通常命令n都在前面) -> 删除(同剪切)从光标开始的n个字符,比如test,执行2x,则变为tt.
  3. dd -> 删除(同剪切)当前行
  4. ndd -> 向下删除(同剪切)当前行在内的n行
  5. u ->撤销上一步操作
  6. ctrl + r® redo 前进一步操作
  7. df指定字符a -> 从光标处删除至指定字符a
  8. di” -> 删除(同剪切)““双引号内内容
  9. da” ->删除(同剪切)““双引号内内容以及引号自身
  10. dw -> 删除(同剪切)当前光标到单词尾部,同理dW,db,dB
  11. d2w -> 删除(同剪切)当前光标至二个单位处,同理d2W,d2b,d2B

搜索

  1. 命令模式下输入/test向下搜索含有test字符串,?test向上搜索含有test的字符串
  2. n->向下搜索前一个搜素动作
  3. N->向上搜索前一个搜索动作

跳至指定位置

  1. gg -> 跳至整篇开头位置,光标转移到当前行第一个字符
  2. G->跳至整篇结束行,光标转移到当前行第一个字符
  3. nG->跳到行号为n的行,光标转移到当前行第一个字符
  4. ^ -> 一行的开始
  5. $-> 一行的结尾
  6. w -> 以空格和符号作为分割正向跳转(反向b),“hello vim,I’m wrting”,当光标在h时,连按w光标依次显示为:v > , > I > ‘ > m > w > “
  7. W -> 以空格为分割,正向跳转(反向B),“hello vim,I’m wrting”,当光标在h时,连按大写的W光标依次显示为:v > I > w
  8. f+字符x -> 正向跳转至下一个字符x,F是反向.
  9. ctrl+o(old)-> 光标向前一个光标跳
  10. ctrl+i-> 光标向后一个光标跳

复制、粘贴

  1. yy -> 复制当前行,也可以使用ayy,a为字母,非数字
  2. nyy->将当前行向下n行复制到缓冲区,也可以用 “anyy 复制,”a 为缓冲区,a为字母,非数字。,可以完成多个复制任务。
  3. yf指定字符a-> 从光标处复制至指定字符a
  4. yi”-> 复制”“双引号内内容
  5. ya”->复制”“双引号内内容以及引号自身
  6. yw -> 复制从光标开始词尾的字符。
  7. nyw ->复制从光标开始的n个单位,比如一个单子,一个逗号都算一个。
  8. v2w->使用v来进行选中,w指为word,2就是2个,再使用y复制选中内容,用方向键也可以。
  9. p -> 粘贴复制的内容,也可以使用ap,粘贴后的行处于当前行的下一行,会自动创建一个行。a为字母,非数字。P是在光标前,p是在光标后。
  10. np-> 粘贴n次

替换命令

  1. :s/golang/golang2->用golang2替换行中首次出现的golang2
  2. :s/golang/golang2/g ->用golang2替换行中所有的golang
  3. :n,m s/golang/golang2/g ->用golang2替换从n到m行里所有的golang
  4. :%s/golang/golang2/g ->用golang2替换当前文件里所有的golang

参考

  1. https://www.vpser.net/manage/vi.html
  2. https://segmentfault.com/a/1190000009064004
  3. http://www.cnblogs.com/zhaozihan/p/6297217.html

本文来自:www.allocmem.com

感谢作者:www.allocmem.com

查看原文:vim常用命令

4506 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传