内容:
1、设置自动缩进(tab键为4个字符)
2、设置括号自动缩进(比如输入"(",会自动输入(),且光标在括号中间)
详解:
1、设置自动缩进
办法:
我的vim这么难用?不能语法高亮,没有折行,不能打开多个窗口多个buffer,不能……,要实现这些功能,需要配置vimrc文件
1.1、vimrc文件目录在哪?
输入vim回车,进入vim命令模式
1.2、命令模式输入":versin"
1.3、关于vimrc的显示如下:
1.4、对于vim初学者,如果不知道$HOME或者$VIM具体是哪个目录,可以在vim中用下面的命令查看
:echo $VIM
:echo $HOME
1.5、切换到管理员权限,修改系统vimrc文件(也就是图片中的“$VIM”)
1.6、配置缩进:
解释:
设置制表符宽度
:set tabstop=4
:set softtabstop=4
设置缩进的空格数
:set shiftwidth=4
每行的缩进值与上一行相等
:set autoindent
vimrc文件怎么用?
举个例子:【我要实现这样的效果——在我用vim打开文件时,默认地给我显示行数】
vim在默认的情况下,不会显示行数,需要在命令模式下输入【:set number】。这个命令只对当前窗口起作用。
你打开其他的文档,如果还要显示行数,得再敲set的命令。
有了配置文件就不用这么麻烦了。打开你的【_vimrc】文件,在文件的最后的一行输入【set number】,保存。
这样,你以后打开的所有文件就都会有行号了。
这只是很小的功能,举个例子罢了。
它还可以定义自己的命令,如删除空行等,就不用记住那个难记的正则表达式,只要在配置文件里写一遍,再给它取个名字(如:xyz),以后输入【:xyz】就能达到删除空行的效果。(此篇不再赘述)
另,vim还自带了一个vimrc的示例文件——【vimrc_example.vim】。我的这个文件目录是这样的:【$VIM\vim73\】
2、设置括号自动缩进
vi编辑器中的括号不能自动缩进,使用imap将可以实现,大括号缩进设置为
imap {<CR> {<CR>}<ESC>O
意思是:在输入时将大括号接换行符映射成大括号接回车接大括号接ESC接大写的O
效果(输入" { ",然后enter回车):
同理,中括号以及小括号缩进设置
imap [ []<ESC>i //输入左中括号的时候自动补齐右中括号,并在括号中间输入i imap ( ()<ESC>i //输入左小括号的时候自动补齐右小括号,并在括号中间输入i
效果(只输入一个 " [ " 时):
另外的缩进设置:输入一个左括号,相当于输入完整的括号再将光标向左移动一个字符
imap [ []<LEFT> //输入左中括号的时候自动补齐右中括号
imap ( ()<LEFT> //输入左小括号的时候自动补齐右小括号
效果(只输入一个 " [ " 时):输入一个左括号,相当于输入完整的括号再将光标向左移动一个字符
以上只是简单举例。
再就是imap是什麽意思,imap的意思是insert模式下的映射操作,上述设置的映射规则只在输入模式下有作用,在其他模式中没有设置这种映射规则就不会有这种输入时的替换,map有好几种映射模式,想设置某一种模式下映射规则,可以使用该模式下的映射命令,比如命令模式cmap,普通模式nmap
关于map的模式可以参考这篇博客http://haoxiang.org/2011/09/vim-modes-and-mappin/