【Linux】vimrc 配置方案

news/2024/7/21 5:55:39 标签: linux, excel, 运维

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


http://www.niftyadmin.cn/n/5187001.html

相关文章

【Seata源码学习 】 篇二 TM与RM初始化过程

【Seata源码学习 】 篇二 TM与RM初始化过程 1.GlobalTransactionScanner 初始化 GlobalTransactionScanner 实现了InitializingBean 接口&#xff0c;在初始化后将执行自定义的初始化方法 io.seata.spring.annotation.GlobalTransactionScanner#afterPropertiesSet Override…

Linux中设置git的代理

在Vim中安装插件时&#xff0c;一般是需要访问github来安装的&#xff0c;但是github经常不能访问&#xff0c;所以需要设置代理来访问。 两条命令分别设置git的http和https的代理&#xff0c;如下&#xff1a; git config --global http.proxy http://192.168.1.129:1880 gi…

【C++】数组中出现次数超过一半的数字

代码&#xff1a; class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param numbers int整型vector * return int整型*/int MoreThanHalfNum_Solution(vector<int>& numbers) {int …

【算法基础】分解质因数

文章目录 什么是分解质因数具体案例输入格式输出格式数据范围 原理讲解原始方法转换思路利用试除法判定质数的思路为什么不需要单独判断是否为质数 什么是分解质因数 分解质因数是指将一个合数用质因数相乘的形式表示出来&#xff0c;即将一个合数分解为若干个质数的乘积。其中…

KT148A语音芯片使用串口uart本控制的完整说明_包含硬件和指令举例

一、功能简介 KT148A肯定是支持串口的&#xff0c;有客户反馈使用一线还是不方便&#xff0c;比如一些大型的系统不适合有延时的操作&#xff0c;所以更加倾向于使用uart控制&#xff0c;这里我们也给出解决方案 延伸出来另外一个版本&#xff0c;KT158A 注意次版本芯片还是…

博客系统页面设计

目录 前言 1.预期效果 1.1博客列表页效果 1.2博客详情页效果 1.3博客登陆页效果 2.实现博客列表页 2.1实现导航栏 2.2实现版心 2.3实现个人信息 2.4实现博客列表 3.实现博客正文页 3.1引入导航栏 3.2引入版心 3.3引入个人信息 3.4实现博客正文 4.实现博客登陆页…

Java XSSFWorkbook 常用表格操作

导入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version> </dependency>常规操作 // 1、新建工作表 XSSFWorkbook workbook new XSSFWorkbook(); XSSFSheet s…

java的Exception.getMessage为null

之前捕获异常后调用异常的getMessage写日志&#xff0c;日志写的竟然是null&#xff0c;不可思议。发现要调用异常的getCause().getMessage()才能得到异常信息 刻意把密码改错&#xff0c;让异常直达界面&#xff0c;免得有问题时候只能猜