vim的简单配置

"一、高亮
set number  " 打开
set nocompatible  "不与 Vi 兼容(采用 Vim 自己的操作命令
set showmode  "在底部显示,当前处于命令模式还是插入模式。
set showcmd  "命令模式下,在底部显示,当前键入的指令。比如,键入的指令是2y3d,那么底部就会显示2y3,当键入d的时候,操作完成,显示消失。
set mouse=a  "支持使用鼠标
set selection=exclusive
set selectmode=mouse,key  " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)

"二、缩进
set autoindent  "按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致。
set smartindent  "加强自动缩进
set tabstop=2  "按下 Tab 键时,Vim 显示的空格数。
set shiftwidth=4  "在文本上按下 >> (增加一级缩进)、 << (取消一级缩进)或者 == (取消全部缩进)时,每一级的字符数。
set expandtab  "由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。
set softtabstop=2  "Tab 转为多少个空格。
filetype on  "检测文件类型
filetype indent on  "针对不同的文件采用不同的缩进方式
filetype plugin on  "允许插件
filetype plugin indent on  "启动智能补全
set wildmenu  "ex命令补全时出现在状态栏的那个补全列表

"三、外观
"set relativenumber  "显示光标所在的当前行的行号,其他行都为相对于该行的相对行号。
set bg=dark
set cursorcolumn  "高亮所在列
set cursorline  "光标所在的当前行高亮。
highlight CursorLine cterm=none ctermbg=236
highlight CursorColumn cterm=none ctermbg=236
set textwidth=80  "设置行宽,即一行显示多少个字符。
set foldenable  " 允许折叠  
set foldmethod=manual  " 手动折叠
set wrap  "自动折行,即太长的行分成几行显示。
set nowrap  "关闭自动折行
set linebreak  "只有遇到指定的符号(比如空格、连词号和其他标点符号),才发生折行。也就是说,不会在单词内部折行。
set wrapmargin=2  "指定折行处与编辑窗口的右边缘之间空出的字符数。
set scrolloff=5  "垂直滚动时,光标距离顶部 / 底部的位置(单位:行)。
set sidescrolloff=15  "水平滚动时,光标距离行首或行尾的位置(单位:字符)。该配置在不折行时比较有用。
set laststatus=2  "是否显示状态栏。0 表示不显示,1 表示只在多窗口时显示,2 表示显示。
set  ruler  "在状态栏显示光标的当前位置(位于哪一行哪一列)。

"四、搜索
set showmatch  "光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号。
set hlsearch  "搜索时,高亮显示匹配结果。
set incsearch  "输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果。
set ignorecase  "搜索时忽略大小写。
set smartcase  "如果同时打开了ignorecase,那么对于只有一个大写字母的搜索词,将大小写敏感;其他情况都是大小写不敏感。比如,搜索Test时,将不匹配test;搜索test时,将匹配Test。

"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap{ { <CR> }<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i

imap { {}<ESC>i<CR><ESC>V<O
imap { {}<ESC>i<CR><ESC>O
function!ClosePair(char)
      if getline('.')[col('.')-1] == a:char   
          return "\<Right>" 
      else    
          return a:char 
      endif
endfunction
filetype plugin indent on  "打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu


" 大括号自动分行"
autocmd BufWritePre,BufRead *.c :inoremap <Enter> <c-r>=BracketsEnter('}')<CR>
autocmd BufWritePre,BufRead *.cpp :inoremap <Enter> <c-r>=BracketsEnter('}')<CR>

function BracketsEnter(char)
    if getline('.')[col('.')-1] == a:char
        return "\<Enter>\<Tab>\<Esc>mpa\<Enter>\<Esc>`pa" 
    else
        return "\<Enter>"
    endif
endf

"五、编辑
""set spell spelllang=en_us  "打开英语单词的拼写检查。
set nobackup  "不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号(?)。
set noswapfile  "不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp。
set undofile  "保留撤销历史
set wildmenu  " 增强模式中的命令行自动完成操作
set wildmode=longest:list,full  "命令模式下,底部操作指令按下 Tab 键自动补全。第一次按下 Tab,会显示所有匹配的操作指令的清单;第二次按下 Tab,会依次选择各个指令。
set shortmess=atI  "启动的时候不显示那个援助乌干达的提示

                      

 

 

                      

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值