VIM编辑器进阶配置
vim自定义设置
可以选择需要的功能添加至 ~/.vimrc 打开注释使之生效。
" 让 vim 关闭所有扩展的功能,尽量模拟 vi 的行为。
set nocompatible
" 默认是8色的,开启256色支持
set t_Co=256
" 突出显示当前行,即横线
set cursorline
" 隐藏工具栏
set guioptions-=T
" 隐藏菜单栏
set guioptions-=m
" 设置在状态行显示的信息
set foldcolumn=0
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" 语法高亮
set syntax=on
" 去掉输入错误的提示声音
set noeb
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
" 历史记录数
set history=1000
" 禁止生成临时文件
set nobackup
" 禁止生成临时文件
set noswapfile
" 搜索忽略大小写
set ignorecase
" 搜索逐字符高亮
set hlsearch
" 输入搜索内容时就显示搜索结果
set incsearch
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 输入的命令显示出来,看的清楚些
set showcmd
" 打开状态栏标尺
set ruler
" filetype on
" 开始折叠
" set foldenable
" 显示行号
" set number
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
" set report=0
" 设置魔术
" set magic
" 设置当文件被改动时自动载入
" set autoread
" 代码补全
" set completeopt=preview,menu
" 允许插件
" filetype plugin on
" 共享剪贴板
" set clipboard=unnamed
" 从不备份
" set nobackup
" make 运行
" set makeprg=g++\ -Wall\ \ %
" 自动保存
" set autowrite
" set foldmethod=indent
" set foldlevel=3
" 在处理未保存或只读文件的时候,弹出确认
" set confirm
" 自动缩进
" set autoindent
" set cindent
" 把tabs转换成空格
" set shiftwidth=4
" 不要用空格代替制表符
" set noexpandtab
" 在行和段开始处使用制表符
" set smarttab
" 行内替换
" set gdefault
" 为C程序提供自动缩进
" set smartindent
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位,鼠标选择)
" set mouse=a
" 为了使代码风格尽量保持一致,一般不允许在代码使用TAB符,而以4个空格代之。如下只在编辑c和cpp文件时实行这种设置了
" autocmd FileType c,cpp set shiftwidth=4 | set expandtab
" 在被分割的窗口间显示空白,便于阅读
" set fillchars=vert:\ ,stl:\ ,stlnc:\
" 允许backspace和光标键跨越行边界,方向键自动换行
" set whichwrap+=<,>,h,l
" 我的状态行显示的内容(包括文件类型和解码)
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 总是显示状态行
" set laststatus=2
" 命令行(在状态行下)的高度,默认为1,这里是2
" set cmdheight=2
" 状态栏定义
" set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 映射全选+复制 ctrl+a
map <C-A> ggVGY
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y
"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if &filetype == 'sh'
call setline(1, "#!/bin/bash")
call append(line("."), "# File Name: ".expand("%"))
call append(line(".")+1, "# Intro: *****")
call append(line(".")+2, "# mail: *****@163.com")
call append(line(".")+3, "# Created Time: ".strftime("%c"))
call append(line(".")+4, "#-------------------------------")
call append(line(".")+5, "")
else
call setline(1, "/*************************************************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+1, " > Intro: *****")
call append(line(".")+2, " > Mail: *****@163.com")
call append(line(".")+3, " > Created Time: ".strftime("%c"))
call append(line(".")+4, " ************************************************************************/")
call append(line(".")+5, "")
endif
if &filetype == 'cpp'
call append(line(".")+6, "#include<iostream>")
call append(line(".")+7, "using namespace std;")
call append(line(".")+8, "")
endif
if &filetype == 'c'
call append(line(".")+6, "#include<stdio.h>")
call append(line(".")+7, "")
endif
endfunc
" 新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
作者:Outsrkem
原文链接:https://www.cnblogs.com/outsrkem/p/11237626.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。