【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设置新建文件自动填入的文件头(作者信息等)、设置编辑时间、鼠标直接定位

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值