~1.搜索 /字符 表示从光标往下开始搜索字符; ?字符 表示从光标往上开始搜索字符-----》如果要重复执行命令,即是多次搜索,按字母n继续命令,n表示重复执行。
~2、替换 :x1,x2s/字符1/字符2/g 在x1 x2行间把字符1替换为字符2 -----》 :1,$s/字符1/字符2/gc表示从第一行到末尾把字符1替换为字符2,并且带有确认提示。
~3、删除 dd 删除游标所在的一行 数字+x 删除游标所在行后数字个字符-----》数字+dd删除光标下面数字行的内容。
~4、复制黏贴 yy 复制光标所在的行-----》数字+yy 复制光标及以下多少行; p 从光标下一行开始黏贴复制的内容。
~5、还原操作 u ;重做 ctrl+r 都可以重复操作,就相当于不停的上一步,上一步。
6、vim的操作指令比较多,推荐知道上面的常用指令,配合插入模式,即可完成常规的操作。
上面说到了一些操作,这里补充一下:指令模式的几个常用操作
:set nu 在文本中显示行号
:! command 暂时退出vim,相当于win下面的“最小化”咯
:w name 另存为name
:na,nb w name 把na nb的内容合并起来,再另存为name
二、vim中级阶段
好了,第一个阶段练习一下,应该对一般的操作很熟悉了,不熟悉的话适当回顾就好。当然也会发现一些操作不方便,可能达不到你自己的目的,下面再说几个中级点的操作。
1、区块复制操作
前一部分大多是针对一行一行来操作的,区块操作更加方便,一般模式下,按下ctr+v,你会看到光标划过的地方会反白,表明你已经勾选的相应内容,试试多用方向键,你会发现这个东西非常有用,按下y复制,p黏贴。
vim没有word那么智能,可以自动排版,所以说在区块选择中你选中的是什么样子,黏贴以后也会是什么样子,这个虽然简单,但是对版面整洁来说非常有用。
2、多文件操作
这个的主要作用是把A文件的内容复制到B文件里面去,当然,你可以开2个vim,通过鼠标选取复制,不过那样太吧不犀利了........
首先vim file1 file2打开两个文件(记得目录),然后:files查看自己的编译的文件。然后 :N 编译上一个文件, :n 编辑下一个文件,然后你只需要按照前面的操作方式复制file1的东西,再切换到file2,最后p就OK啦!
3、多窗口操作
这个主要是用来进行数据的对照,在一个vim下,输入:sp file2,会有多窗口显示,相当于并行的vim了。你可以在一个窗口同时编辑两个文件,文件间的切换使用ctrl+w+↑或者ctrl+w+↓就OK了~到这里,你会发现vim太强大了,鄙视word了........
4.vim的保护功能
在你编辑一个文件的时候,当前目录下会产生一个name.swp的临时文件,出现异常情况以后,下次vim该文件时候,会出现提示,按照提示进行恢复,重编辑即可。
5.vim的配置文件
vim的配置文件有两个:/etc/.vimrc(全局设置)和~/.vimrc(用户设置),前一个文件建议不修改,后一个文件默认不存在,新建一个(vim ~/.vimrc)就OK。
:set all可以查看当前的环境配置,设定太多,举例几个,参考鸟哥的教程。
vim环境设置参数:(在上面的~/.vimrc里按需添加以下设定信息,前面的冒号可以不要)
:set nu :set nonu #设定显示行号
:set hlsearch :set nohlsearch hlsearch #就是 high light search(高亮度搜寻)。 这个就是设定是否将搜寻的字符串反白癿设定值。默讣值是 hlsearch
:set autoindent :set noautoindent #是否自动缩排
:set backup #是否自动储存备份档。一般是 nobackup 的, 如果设定 backup 的话,编辑一个文件的话,原文件会在当前目录下被另存为。
:set ruler #显示状态说明信息
:set showmode # 显示状态信息(如显示insert等等)
:syntax on :syntax off #程序语法颜色标识
:set bg=dark :set bg=light #设定注释颜色,觉得蓝色不容易看换成dark就好了
最后,这个阶段的学习用下面的图总结一下~
三、vim高级阶段
1、程序的折叠
程序折叠,如下面的图示,
+-----------------------------------+
| 行 1 |
| 行 2 |
| 行 3 |
|_______________________ |
\ \
\________________________\
/ 被折叠的行 /
/________________________/
| 行 12 |
| 行 13 |
| 行 14 |
+-----------------------------------+
设置~/.vimrc,添加set fdm=....
manual 手动建立折叠。
indent 相同缩进距离的行构成折叠。
expr 'foldexpr' 给出每行的折叠级别。
marker 标志用于指定折叠。
syntax 语法高亮项目指定折叠。
diff 没有改变的文本构成折叠。
保存退出,使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。非常便于读代码呀。如下:
光标移动到白色的地方,zo打开折叠,zc收起折叠。zj移动到下一个折叠处,zk移动到上一个折叠处。
使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动。我们可以使用下面的命令来创建和删除折叠:
zf 创建折叠,比如在marker方式下: zf56G,创建从当前行起到56行的代码折叠;10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
zd 删除 (delete) 在光标下的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。
zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。
zE 除去 (Eliminate) 窗口里“所有”的折叠。
仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。
2、程序的跳转
跳转主要是用于看很长代码时候的一个书签功能,操作方法是,在你需要的地方按下ma做上一个名字为a的标签,之后,在任何时候,你想要跳回这个a标签处,直接按`a就可以了(注意`a是键盘数字1左边那个键+标签名)。当然,标签名可以是ma,mb,mc等等。实际操作一下吧。
基本操作就介绍到这哈~~~以后有时间了再补充吧,上面的操作足够熟练用了哈~