经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Vim » 查看文章
入坑!VIM编辑器(最强整理版)
来源:w3xue  时间:2018/12/11 10:04:33  对本文有异议

VIM的三种模式

1.jpg

VIM 小抄图

2.jpg

VIM具体操作

进入vi的命令

  1. vi filename :打开或新建文件,并将光标置于第一行首 
  2. vi +n filename :打开文件,并将光标置于第n行首 
  3. vi + filename :打开文件,并将光标置于最后一行首 
  4. vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 
  5. vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 
  6. vi filename....filename :打开多个文件,依次进行编辑

移动光标命令

  • 操作在命令模式下

  1. 或下箭头 向下移动一行
  2. 或上箭头 向上移动一行
  3. 或左箭头 左移一个字符
  4. 或右箭头 右移一个字符
  5. 右移一个词
  6. 右移一个以空格分隔的词 
  7. 左移一个词
  8. 左移一个以空格分隔的词
  9. 0 移到行首
  10. Ctrl-向前翻页
  11. Ctrl-向后翻页
  12. nG 到第n
  13. 到最后一行

插入文本命令

  • 操作在命令模式下

  1. i  在当前字符前插入文本   
  2. I  在行首插入文本       
  3. a  在当前字符后添加文本   
  4. A  在行末添加文本      
  5. o  在当前行后面插入一空行  
  6. O  在当前行前面插入一空行  
  7. R  以改写方式输入文本

替换文本

  1. $     到行尾
  2. (     到句子的开头 
  3. )     到句子的末尾
  4. {     到段落的开头
  5. }     到段落的末尾

文本操作

  • 在命令模式下

  1. r   替换一个字符
  2. c   修改文本直到按下Esc 
  3. cw  修改下一个词
  4. cnw  修改接下来的n个词

删除操作

  • 在命令模式下

  1. 删除光标处的单个字符 
  2. dd 删除光标所在行 
  3. dw 删除当前字符到单词尾(包括空格)的所有字符 
  4. de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符 
  5. d$ 删除当前字符到行尾的所有字符 
  6. d^ 删除当前字符到行首的所有字符 
  7. 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容

文本编辑

  1. yy 将一行文本移到缺省缓冲区中 
  2. yn 将下一个词移到缺省缓冲区中
  3. ynw 将后面的n个词移到缺省缓冲区中
  4. p  如果缺省缓冲区中包含一行文本,则在当前    
  5.   行后面插入一个空行井将缺省缓冲区中的声    
  6.   容粘贴到这一行中;如果缺省缓冲区中包含    
  7.   多个词,把这些词粘贴到光标的右边.     
  8.  
  9. P  如果缺省缓冲区中包含一行文本,则正当前     
  10.   行前面插入一个空行井将缺省缓冲区中的内     
  11.   容粘贴到这一行中;如果缺省缓冲区中包含    
  12.   多个词,把这些词粘贴到光标的左边.

保存退出

  1. zz          保存并退出(在命令行模式下)
  2.  
  3. 在末行模式下::w filename     写入文件:W          写入文件:x         保存(如果当前文件修改过)并退出 
  4. :q!         不保存文件,直接退出(强制退出):q         退出vi

编辑模式的编辑键操作

  1. 方向键进行上下左右方向的光标移动 
  2. Home快速定位光标到行首
  3. End快速定位光标到行尾
  4. PageUp进行文本的向上翻页 
  5. PageDown进行文本的向下翻页
  6. Backspace删除光标左侧的字符
  7. Del删除光标位置的字符

替换操作

  • 在末行模式下

  1. :s/old/new 将当前行中查找到的第一个字符“old 串替换为“new”:s/old/new/将当前行中查找到的所有字符串“old 替换为“new”:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

撤消操作

  • 在命令模式下

  1. 取消最近一次的操作,并恢复操作结果,可以多次使用u命令恢复已进行的多步操作 
  2.  
  3. 取消对当前行进行的所有操作 
  4.  
  5. Ctrl + r 对使用u命令撤销的操作进行恢复

复制与粘贴操作

  • 在命令模式下

  1. yy 复制当前行整行的内容到vi缓冲区 
  2.  
  3. yw 复制当前光标到单词尾字符的内容到vi缓冲区 
  4.  
  5. y$ 复制当前光标到行尾的内容到vi缓冲区 
  6.  
  7. y^ 复制当前光标到行首的内容到vi缓冲区
  8.  
  9. 读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)

字符串查找操作

  • 在命令模式下

  1. /word 从上而下在文件中查找字符串“word 
  2.  
  3. ?word 从下而上在文件中查找字符串“word
  4.  
  5. 定位下一个匹配的被查找字符串 
  6.  
  7. 定位上一个匹配的被查找字符串

快捷键

  1. ctrl- 把光标移动到命令行最开始的地方。 
  2. ctrl- 把光标移动到命令行末尾。 
  3. ctrl- 清除命令行中光标所处位置之前的所有字符。 
  4. ctrl- 清除从提示符所在位置到行末尾之间的字符
  5. ctrl- 清除左边的字段 
  6. ctrl- 将会贴上被ctrl-或者 ctrl-或者 ctrl-w清除的部分。 
  7. ctrl- 将自动在命令历史缓存中增量搜索后面入的字符。 
  8. tab  命令行自动补全-自动补全当前的命令行。如果启用自动补全脚本命令参数和选项也可以自动补齐。
  9.  
  10. ctrl- 清屏


 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号