vim,还是讲点吧,编辑器之神。




vim不是真的像vi那么简单,配置后的vim可以非常强大,而自己配置的vim可以非常顺手,而且我配置的vimrc是linux和windows通用的,先说说怎么用,浏览器直接打开可能看到乱码,看看自己家目录下有没有.vimrc,把我的.vimrc写进去就OK了。




如上图,wget可以用来下载东西,在家目录下载这个.vimrc就可以了。


vimtutor,这是个命令,其实是vim的官方教程,而且这个教程本身可以用vim的操作,跟着教程走一遍就基本可以简单使用vim了。




其实还有中文的vimtutor,LANG=zh_CN.UTF-8 vimtutor,这是临时把代表语言的环境变量改成中文然后vimtutor。




首先,vim主要是在主键盘操作,也就是尽量不用方向键和小键盘那些。




然后其实vim命令是很复杂的。




但不需要都掌握,一些基本的用顺手了,其他的能学多少是多少。


用vim打开文件,
	vim 文件名

	:q
	退出,
	:w
	保存,
	:e 文件名
	打开另一个文件,

	这三个加感叹号表示强制执行,:q!,:w!
		

下面也不打开什么文件了,就用vimtutor演示,在命令模式下,之前说过,vim打开是会运行家目录下的.vimrc,也就是说下面的命令都可以写在.vimrc里,每次自动执行,下面这命令是设置不兼容vi,如果兼容vi的话会有很多vim命令用不了,:set nocompatible,所有命令者可以用 数字+命令 表示多次执行,如8j,:!ls,冒号感叹号:!开头的可以执行shell的命令,首先是光标移动,hjkl,左下右上,四个在一排,比什么上下左右好用多了。




w,b,光标跳到下/上个单词,还有个e也是跳到行尾,
	$,^,光标跳到行尾/行首,还有个0也是跳到行首,
	C-u/C-d,上/下滚动半页,
	C-b/C-f,上/下滚动一页,
	C-e/C-y,上/下滚动一行,
	gg,瞬移到开头行,
	G,瞬移到最后行,
	数字G,瞬移到指定行,8G就是跳到第8行,
	zz,瞬移到屏幕中间,
	然后是删除,
	x,删除当前一个字符。
		


dd,删除当前行,D,删除当前行里,光标后面的字符。


然后是进入插入模式的命令。




iao,这三种,加上大小写共6种,都试试效果,
	i,a,当前字符的前/后面插入,
	I,A,当前行的开头/结尾插入,
	o,O,下/上一行插入。
		

进入了插入模式就可以写代码了,先说说退出到命令模式,除了左上角的Esc(escape)逃脱键表示返回,还可以用C-[输入Esc的值也能返回,还可以用C-c表示结束插入模式,我一般都是用C-[,还有临时退回命令模式,执行一条命令就返回插入模式的C-o,还是说说光标移动,显然这里就不能用hjkl移动光标了,只能用方向键,或者网上的许多人喜欢把C+hjkl映射到方向键。


:imap c-h 
	:imap c-j 
	:imap c-k 
	:imap c-l 
	但我不喜欢,不喜欢在插入模式移动光标。
		

然后是删除,默认的backspace(退格键)和其他编辑器完全不同,vim的退格键只用来修改本次的插入,我用不惯,所以用下面的命令改成和别的一样,:set backspace=2,真正的删除键(Delete),删除后面一个字符,正常使用,有了上面这些基本就能当成普通的编辑器用了,而且是个不需要方向键不需要小键盘不需要鼠标的编辑器,但vim显然不止这样,所以继续讲点命令,帮助,:h,后面跟上要查的命令,但是并不好用,因为vim里面的命令太复杂,还分各种模式,而且命令模式还有些是冒号:开头的,总之不容易查到自己要的。




顺便说说,冒号:开头有大多数命令都是有缩写的,h是help的缩写。


搜索,
	/,?,向下/上搜索,后面跟上正则表达式,
	n,N,搜索下/上一个,循环搜索,
	*,#,在一个单词上搞这个表示向下/上搜索这个单词。

	替换,
	:%s/正则/替换/gi
	就是把上面的“正则”替换成“替换”,
	这里也可以用上正则,所以说正则相当重要,
	前面的%表示全文每行都替换,去掉只替换当前行,
	后面的g表示替换每个匹配的,去掉只替换行里第一次出现的,
	后面的i表示匹配时无视大小写,都是可以不要的。

	:set
	可以设置很多东西,直接:set可以看到当前的设置,
	:set ic
	搜索时无视大小写,加个no就取消:set noic
	:set fenc=utf-8
	设置文件编码,可以改成各种编码,
	:set fileencodings=ucs-bom,utf-8,cp936,ucs-bom,shift-jis,gb18030,gb2312,latin1
	这个要放在.vimrc才有用,是在打开文件时按这个顺序判断文件的编码,
	:set ff=unix
	改文件换行符的类型,dos,unix,mac。

	复制粘贴,剪切板,
	:reg
	这个命令可以看寄存器(register),其实就是剪切板,
	可以看到这个剪切板里有很多寄存器。
		


默认使用的是"双引号寄存器,前面说的删除,其实都能看成剪切,东西都会存在这个寄存器,y,这个y是复制,后面跟上光标移动的命令,敲两下y是复制当前行,要配合下面说的选择才能比较准确的选择要复制的内容,p,P,粘贴,分别是在后面和前面粘贴。






u,撤销,ctrl-r是取消撤销。




选择模式,上面的一些操作,比如替换,删除之类的,可以只针对一部分,用v键进入选择模式,移动光标然后执行命令,如果执行的是冒号:开头的命令,会自动出现:'<,'>表示后面命令只对选择的这部分。




还有shift-v是整行选择。



ctrl-v是矩形的选择。




这些选择都是结合别的命令使用的,可以随便试试,剩下的时间主要自己操作一番,看看vimtutor,如果能喜欢上vim,就花个几天,几周来学习一下vim的命令,还有vim的脚本语言,作为一个脚本语言是很强大的,还有可以用各种map,把一些组合键和F键设置成编译运行当前写的代码,虽然我并不喜欢这样,还有些其他常用的设置,可以看看我的.vimrc,还有页面下方的链接,别人配置的vim,可以试试。