首页 > 代码库 > 用vim做IDE

用vim做IDE

在home目录下编辑.vimrc(无则新建)。

 syn on                      "语法支持
  
 "common conf {{             通用配置
 set ai                      "自动缩进
 set bs=2                    "在insert模式下用退格键删除
 set showmatch               "代码匹配
 set laststatus=2            "总是显示状态行
 set expandtab               "以下三个配置配合使用,设置tab和缩进空格数
 set shiftwidth=4
 set tabstop=4
 set smartindent
 set cursorline              "为光标所在行加下划线
 set number                  "显示行号
 set autoread                "文件在Vim之外修改过,自动重新读入
 
 set ignorecase              "检索时忽略大小写
 set fileencodings=uft-8,gbk "使用utf-8或gbk打开文件
 set hls                     "检索时高亮显示匹配项
 set helplang=cn             "帮助系统设置为中文
 set foldmethod=syntax       "代码折叠
 imap { {}<ESC>i<CR><ESC>V<O
 imap ( ()<ESC>i imap [ []<ESC>i "}}
  
 "conf for tabs, 为标签页进行的配置,通过ctrl h/l切换标签等
 let mapleader = ','
 nnoremap <C-l> gt
 nnoremap <C-h> gT
 nnoremap <leader>t : tabe<CR>
 
 "conf for plugins {{ 插件相关的配置
 "状态栏的配置 
 "powerline{
 set guifont=PowerlineSymbols\ for\ Powerline
 set nocompatible
 set t_Co=256
 let g:Powerline_symbols = 'fancy'
 "}
 
 "}}                            

注意中间两行imap是设置大中小括号的自动匹配与且完成大括号的缩进

解释一下。

imap是vim配置中的指令,就是做一个映射,语法就是

imap 要映射的东西 被映射成什么东西

按照这种理解,上面的那句就可以理解为:

映射“{”为

{}<ESC>i<CR><ESC>V<O


后面的东西就是vim中依次执行这些操作,一一分解如下:

{} 就是直接插入左右括号

<ESC>   就是按键盘的ESC键,切换到命令行模式

i  按键盘的i键,进入插入模式

<CR> 按回车,此时将右括号换行

<ESC>   就是按键盘的ESC键,切换到命令行模式

V 按住shift+v,就是选中当前行就是右括号所在的行

< 按住shift+,将当前行向左移动一个tab,此时右括号已经和左括号对齐

O 按住shift +o,在当前行(右括号)的前一行插入

其实就是告诉vim如果我们输入{ ,那就接下来做上面一系列操作。

至于 ( 和 [ 则是一个道理了。

用vim做IDE