从实际操作中学习vim编辑器(集方式关系+常用指令图+指令示意图为一体)
工作中接触最多的编辑器当属vim,然而也因为vim的功能太过强大导致其指令多且杂,很难完全掌握,本文是基于本人的实际情况并通过浏览一系列介绍vim的文章进行的归纳总结,且长传前均经过一一实验,适合于菜鸟,为了简略,文中诸多用语可能很不准确,且部分描述不够明了,如有疑问请点击本文文末的参考原文(无链接请直接复制搜索),此仅是本人阅读笔记初稿,见笑!
内容概要
第一章节 常用编辑方法总结
1正常模式下
2命令模式下
3可视模式下(正常模式下按v)
4 中文乱码问题
5两种实用功能推荐(高级):
==>1多档案编辑
==>2打开多窗口模式
第二章节 vim三种模式相互关系图
第三章节 vim常用功能示意图
第四章节 vim指令图
第一章节 常用编辑方法总结
1正常模式下
(==》记住几个大写字母意义X(往前删),P(往上粘),O(往下插新行),G(到最后一行),U(撤销当前行的操作),N(反向搜索),A(行末插),0(数字,到行首,不是到行首的插入模式)
x :向后删除一个字符
X:向前删除一个字符(这个我最喜欢用了,但是原来公司的那个不知道这样搞---惊喜!)
nx:连续向后删除n个字符(大写也一样)
dw ;删除一个单词,从光标位置起的单词(包括空格)
J:将光标所在数据与下一行合成一列(常用)
/****************删除+复制begin*****************************/
de 删除一个单词,从光标位置起的单词(不包括空格)
d$(=D);删除从光标位置起至行尾
d0:删除从光标位置至行首
d1G :删除光标所在到第一行的所有数据
dG :删除光标所在到最后一行的所有数据(注意y同d的使用方法一致,实现复制功能)
/****************删除+复制end*****************************/
/****************定位插入取代begin*****************************/
0 或功能键[Home]:到行首(阿拉伯数字0,只是定位)
$ 或功能键[End]:到行末----公司的那个超烂(只是定位)
i :为『从目前光标所在处插入』,
I: 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a :为『从目前光标所在的下一个字符处开始插入』,
A:为『从光标所在行的最后一个字符处开始插入』。(常用)
o :为『在目前光标所在的下一行处插入新的一行』;(字母o)
O:为在目前光标所在处的上一行插入新的一行!(常用)
r :只会取代光标所在的那一个字符一次;
R:会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
/****************定位插入取代end*****************************/
ctrl + R :撤销掉撤销命令(先按ctrl键)
U :撤销在一行中所做的改动
r+字母:输入 r 和一个字符替换光标所在位置的字符。 r **
cw+字符串:要改变一个单字/单词的部分或者全部,请输入 cw **
c$ : 可以替换当前光标到行末的内容。请输入 c$ **
/字符串 :正向搜索,如果你突然想反向,请按Shift-N组合键
?字符串 :逆向搜索
%(先让光标停在某个括号前再按):按 % 可以查找配对的括号 )、]、}-----------调试很有用(测试不起作用,起作用了,要按住Shift键)
Ctrl-g :用于显示当前光标所在位置和文件状态信息(如我想知道我当前打开的文件的名称和总行数,)
Shift-G :用于将光标跳转至文件最后一行。
n<Enter> :n 为数字。光标向下移动 n 行(常用),当然很多时候我们用:n来到指定的行
2命令模式下
:#,#s/old/new/g:在‘两行之间’替换所有的字符串 old 为新的字符串 new,#代表行号---定位修改很有用
:s/old/new/g :替换当前行中所有
:s/old/new :替换当前行中第一个匹配的
:%s/old/new/g :替换所有文本(在以上的替换命令后面加一个字符c可以在替换之前提醒确认)
:!命令名:输入 :! 然后紧随著输入一个外部命令可以执行该外部命令,再按回车(如:!ls或者!dir,也可用:!rm 文件名删除一个文件)----这个实在太炫了
/**************文件之间内容的复制begin*******************************/
:w filename:将编辑的数据储存成另一个档案(类似另存新档)
:#,# w FILENAME:要保存文件的部分内容到FILENAME--------这个很炫,不过还没实际操作过!
:r filename :在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:#,# r FILENAME:把FILENAME文件里的指定行内容插入到当前文件中----------------一定要学会important----
/**************文件之间内容的复制end*******************************/
:set ic :忽略大小写(一般在查找前根据需要你可以先用这个命令设置ignore Case)
:set all :查看当前环境参数设置值
/*************/*************//*************//*************//*************//*************//
:set backspace=2:使backspace键能够在INSERT模式下删除任意字符(:set backspace= ~(~代表空格),只能让backspace键在INSERT模式下删除刚刚增加的字符,公司原来就做了这个限制超不爽)
/*************/*************//*************//*************//*************//*************//
3可视模式下(正常模式下按v)
移动键盘(就是hjkl或者四个箭头)选择目标,接着按y :复制 再在正常模式下按p :粘贴,完全不用鼠标实现vim的粘贴复制(找了好长时间的功能,以前没怎么关注vim的使用)
4 中文乱码问题
(图一:中文编码原因分析)
(图二:中文编码问题)
(图三:语系编码转换vi.big5-->vi.utf8)
(图四:语系编码转换vi.big5-->utf8)
5两种实用功能推荐(高级):
==>1多档案编辑
shell终端输入命令==>vim file1 file2 file3 (打开多档案编辑)
正常模式下==》:files(列出目前这个vim开启的所有档案)
正常模式下==>:n(编辑下一个文档)
正常模式下==>:N(编辑上一个文档)
优点:这样之后就可以在‘这些档案之间’进行上面提到的复制粘贴了
==>2打开多窗口模式
在正常模式下,譬如我们已经打开了某个文本a.txt==>:sp filename (则a.txt将和filename共同显示在屏幕上,一人一半,即分割,默认打开的文件从首行开始显示)
====>小提醒:最初打开的文件光标在哪行,重新分割窗口后依旧在该行,只是宽度被压缩了
优点:实现多文档对照管理
第二章节 vim三种模式相互关系
第三章节 vim常用功能示意图
第四章节 vim指令图
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
参考:1.鸟哥的私房菜http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631052873d590297634b818b4468d4e411d2234c413031b5fc3022674296d8223c5de8034bed846621765871aa99c98b4899e0852858ca7d766459db0144dc5df4945124b137e059fed81bf0ca8125e0d8c5d2af4323c144767c9780fc4d7660&p=86759a46d6c333b70be2977e4852a538&user=baidu&fm=sc&query=vim%B1%E0%BC%AD%B9%A4%BE%DF&qid=cca57ab1465ba9fb&p1=10
2.vim实用教程初级http://wenku.baidu.com/view/550376375a8102d276a22f6c.html
3.vim指令图解http://image.baidu.com/i?tn=baiduimage&ct=201326592&lm=-1&cl=2&nc=1&word=vim%E6%8C%87%E4%BB%A4%E5%9B%BE%E8%A7%A3&ie=utf-8
4.vim中文手册http://wenku.baidu.com/view/a3df014633687e21af45a997.html