——先说一下,配置文件在/usr/share/vim/vim74目录下的vimrc。但是建议大家在自己家目录下创建一个自己的配置文件(如果没有的话),文件名为 .vimrc ,防止自己修改了配置后对其他用户造成影响。
——使用的时候就用Vim打开配置文件,在最后一行后面新建一行,加入下面的命令就好了。为了便于以后查看,建议每两个功能之间留有空行,最好再加上注释。
——*注意:空格不能随便改动,比如写程序的时候我们习惯写成 x = 5;这样,等号左右都空格,但是在这个配置里是不行的,不要加入空格。
用Tab缩进是4个空格
set ts=4
set expandtab
显示行号
set nu
高亮匹配括号
set showmatch
自动缩进
set autoindent
C/C++缩进
set cindent
高亮显示搜索结果
set hlsearch
快速的搜索
set incsearch
全部替换
set gdefault
智能对齐前提(使用只能对齐需要这个)
filetype pluginindenton
智能对齐
set smartindent
智能对齐缩进长度
set shiftwidth=4
自动补齐
inoremap ( ()i
inoremap [ []i
设置宽度和长度
set lines=40 columns=155
统一缩进
set softtabstop=4
set shiftwidth=4
搜索忽略大小写
set ignorecase
——最后介绍一下关于新建文档后自动添加注释的问题,我先把我的配置贴到这里吧,然后逐行讲解。
<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">autocmd BufNewFile * exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">":call SetTitle()"</span>
func SetTitle()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/**************************************************************************"</span>)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"* File Name : "</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.expand</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%"</span>))
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"* Author : 你的名字"</span>)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"* Mail : 你的邮箱地址"</span>)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"* Introduction : 文件介绍"</span>)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"* Created Time : "</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.strftime</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%Y-%m-%d "</span>))
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"* Lase Modfied : "</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.strftime</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%Y-%m-%d "</span>))
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">call</span> setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"**************************************************************************/"</span>)
endfunc
autocmd
BufNewFile * normal G
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li></ul>
——第一行是自动检测新建的文件,后面的*是文件名,也就是通配符。一个星号的意思是所有文件,可以用 星号.c 表示c后缀的C语言源代码文件,不同的类型用逗号隔开。然后检测到新建的文件符合后面定义的,那就执行SetTitle()这个函数,这个函数在下面定义。
——第二行func SetTitle()就是定义函数了,直到endfuncautocmd那行,中间全都是函数内容。
——函数里call setline(1, “——-“)就是在第1行添加双引号里的内容,每一行都是如此。
——函数的第二行中.expand(“%”)表示新建文件的文件名。后面的.strftime(“%Y-%m-%d”)是创建这个文件的时间。这也是个以外,函数最后一行应该是修改时间的,还没弄完,所以也是文件创建时间,请见谅。
——最后一行BufNewFile * normal G是最后执行的,把光标跳到最后一行,方便用户开始编辑文档。