当前位置: 首页 > article >正文

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


http://www.kler.cn/a/132461.html

相关文章:

  • PH热榜 | 2024-11-19
  • 20241116解决在WIN11和ubuntu20.04通过samba共享时出现局域网千兆带宽拉满的情况
  • 淘宝 NPM 镜像源
  • delphi fmx android 离线人脸识别
  • 高斯数据库Postgresql死锁和锁表解决方法
  • 支付域——新零售支付
  • springboot项目中没有识别到yml文件解决办法
  • 【机器学习】朴素贝叶斯算法:多项式、高斯、伯努利,实例应用(心脏病预测)
  • AlphaControls控件TsDBCombobox出错:访问违规
  • 腾讯云服务器怎么买便宜?腾讯云服务器新人专享限时特惠购买链接
  • 为RabbitMQ配置SSL
  • 【10套模拟】【6】
  • Linux 终端 Ctrl + C 无法终止当前程序(详细解决步骤)
  • Java声明式事务实战!工作中用这几种就够了!
  • 设计模式 - 概览
  • UE4动作游戏实例RPG Action解析四:装备系统
  • 【C++】类和对象(6)--运算符重载
  • PyCharm 远程连接服务器并使用服务器的 Jupyter 环境
  • C++ 递增/递减运算符重载
  • QT基础入门【QSS】继承、命名空间中的小部件、QObject 属性介绍
  • 从0开始学习JavaScript--JavaScript 循环与迭代详解
  • Git企业开发级讲解(四)
  • 使用 Stable Diffusion Img2Img 生成、放大、模糊和增强
  • Python | 机器学习之逻辑回归
  • Unity解决:在空GameObject身上生成一个Text用于显示当前帧率(Time.realtimeSinceStartup使用)
  • 【机器学习】 特征工程:特征预处理,归一化、标准化、处理缺失值