【Linux】vimrc 配置方案
修改 ~/.vimrc 文件(该文件是用户自己vim的配置文件,可随意修改)。
vim ~/.vimrc
极简版。
"关闭兼容功能
set nocompatible
"显示行号
set number
"编辑时 backspace 键设置为2个空格
set backspace=2
"编辑时 tab设置为4个空格
set tabstop=4
"设置自动对齐为4个空格
set shiftwidth=4
"搜索时不区分大小写
set ignorecase
"搜索时高亮显示
set hlsearch
我的.vimrc配置
" 控制
set nocompatible "关闭vi兼容
filetype off "关闭文件类型侦测,vundle需要
set fileencodings=utf-8,gbk "使用utf-8或gbk编码方式
syntax on "语法高亮
set backspace=2 "退格键正常模式
set whichwrap=<,>,[,] "当光标到行首或行尾,允许左右方向键换行
set autoread "文件在vim外修改过,自动重载
set nobackup "不使用备份
set confirm "在处理未保存或只读文件时,弹出确认消息
set scrolloff=3 "光标移动到距离顶部或底部开始滚到距离
set history=1000 "历史记录数
set selection=inclusive "选择包含最后一个字符
set selectmode=mouse,key "启动选择模式的方式
set completeopt=longest,menu "智能补全,弹出菜单,无歧义时才自动填充
set noswapfile "关闭交换文件
set hidden "允许在有未保存的修改时切换缓冲区
"显示
set t_Co=256 "可以使用的颜色数目
set number "显示行号
set laststatus=2 "显示状态行
set ruler "显示标尺
set showcmd "显示输入的命令
set showmatch "高亮括号匹配
set matchtime=1 "匹配括号高亮的时间(十分之一秒)
set matchpairs={:},(:) "匹配括号"{}""()"
set hlsearch "检索时高亮匹配项
set incsearch "边检索边显示匹配
set go-=T "去除gvim的toolbar
"格式
set noexpandtab "不要将tab转换为空格
set shiftwidth=4 "自动缩进的距离,也是平移字符的距离
set tabstop=4 "tab键对应的空格数
set autoindent "自动缩进
set smartindent "智能缩进
" 树形目录
map <C-n> :NERDTreeToggle<CR> " Ctrl+N 打开/关闭
autocmd StdinReadPre * let s:std_in=1 " 当不带参数打开Vim时自动加载项目树
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
let NERDTreeIgnore=['\.pyc$', '\~$', 'node_modules'] "ignore files in NERDTree " 不显示这些文件
let NERDTreeMinimalUI=1 " 不显示项目树上额外的信息,例如帮助、提示什么的
"新建.c,.h,.sh,.java,.py文件,自动插入文件头
autocmd BufNewFile *.py,*.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
""定义函数SetTitle,自动插入文件头
func SetTitle()
"如果文件类型为.sh文件
if &filetype == 'sh'
call setline(1,"\#!/bin/bash")
call append(line("."), "")
call append(line(".")+1, "\"\"\"")
call append(line(".")+2, "\# File Name: ".expand("%"))
call append(line(".")+3, "\# Author: zsy")
"call append(line(".")+2, "\# mail: 1376447675@qq.com")
call append(line(".")+4, "\# Created Time: ".strftime("%c"))
call append(line(".")+5, "")
call append(line(".")+6, "\"\"\"")
endif
if &filetype == 'python'
call setline(1,"\#!/usr/bin/python")
call append(line("."), "\#coding:utf-8")
call append(line(".")+1, "\"\"\"")
call append(line(".")+2, "\# File Name: ".expand("%"))
call append(line(".")+3, "\# Author: zsy")
call append(line(".")+4, "\# Created Time: ".strftime("%H:%M %Y-%m-%d"))
call append(line(".")+5, "")
call append(line(".")+6, "\"\"\"")
else
call setline(1, "/*************************************************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+1, " > Author: zsy")
"call append(line(".")+2, " > Mail: 1376447675@qq.com ")
call append(line(".")+2, " > Created Time: ".strftime("%c"))
call append(line(".")+3, " ************************************************************************/")
call append(line(".")+4, "")
endif
if &filetype == 'cpp'
call append(line(".")+5, "#include<iostream>")
call append(line(".")+6, "using namespace std;")
call append(line(".")+7, "")
call append(line(".")+8, "int main(int argc, char* argv[])")
call append(line(".")+9, "{")
call append(line(".")+10, "")
call append(line(".")+11, " return 0;")
call append(line(".")+12, "}")
call append(line(".")+13, "")
endif
if &filetype == 'c'
call append(line(".")+5, "#include<stdio.h>")
call append(line(".")+6, "#include<stdlib.h>")
call append(line(".")+7, "#include<string.h>")
call append(line(".")+8, "#include<unistd.h>")
call append(line(".")+9, "#include<pthread.h>")
call append(line(".")+10, "")
call append(line(".")+11, "int main(int argc, char* argv[])")
call append(line(".")+12, "{")
call append(line(".")+13, "")
call append(line(".")+14, " printf(\"Hello World!\\n\");")
call append(line(".")+15, " return 0;")
call append(line(".")+16, "}")
endif
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
endfunc
参考链接:
vim设置新建文件自动填入的文件头(作者信息等)、设置编辑时间、鼠标直接定位