【Linux】vimrc 配置方案

修改 ~/.vimrc 文件(该文件是用户自己vim的配置文件,可随意修改)。

bash 复制代码
vim ~/.vimrc 

极简版。

bash 复制代码
"关闭兼容功能
set nocompatible
"显示行号
set number
"编辑时 backspace 键设置为2个空格
set backspace=2
"编辑时 tab设置为4个空格
set tabstop=4
"设置自动对齐为4个空格
set shiftwidth=4
"搜索时不区分大小写
set ignorecase
"搜索时高亮显示
set hlsearch

我的.vimrc配置

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

​

相关推荐
GeW9 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx11 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位12 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
骑着蜗牛撵大象32714 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
众壹新能源科技14 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..14 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason14 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特14 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
考拉讲支付14 小时前
母婴亲子服务平台分账架构设计:多场景多方分账与合规清结算实践
大数据·运维·人工智能·微信小程序·架构·微信公众平台
LateFrames15 小时前
“场控软件” 如何容错与运维
运维·容错·led大屏·播控系统·场控软件