我的vimrc文件配置方案

2024-05-06 17:58
文章标签 配置 方案 vimrc

本文主要是介绍我的vimrc文件配置方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      结合网上的资料,根据自己平时使用习惯,将vimrc文件配置如下:

" 语法高亮
syntax on" 输入的命令显示出来
set showcmd" 允许折叠
set foldenable
" 手动折叠
set foldmethod=manual
" 代码折叠
set foldmethod=marker" 共享外部剪贴板
set clipboard+=unnamed" 配色方案
"colorscheme zellner
" 背景
"set background=dark" 去掉vi兼容性(set nocp)
set nocompatible" 自动缩进
set autoindent
set cindent
set smartindent" Tab键的宽度
set tabstop=4" 统一缩进为4
set softtabstop=4
set shiftwidth=4" 用空格代替制表符
set expandtab" 在行和段开始处使用制表符
set smarttab" 制表符
set iskeyword+=_,$,@,%,#,-" 显示行号
"set number
" 标尺
"set ruler" 命令行于状态行
" set ch=2
" 始终显示状态行
" set ls=2" 历史记录数
set history=500" 自动重新读入
set autoread" 备份和缓存
set nobackup
set noswapfile" 设定在任何模式下鼠标都可用
"set mouse=a
"set mousehide" 自动改变当前目录
"set autochdir"搜索忽略大小写
"set ignorecase"搜索逐字符高亮
set hlsearch
set incsearch"行内替换
set gdefault"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8"语言设置
"set langmenu=en_US.UTF-8
"set langmenu=zh_CN.UTF-8
"set helplang=cn"去掉启动时提示
set shortmess=atI"""""""""""""""""""""""""""""""""""""""""
"按键
""""""""""""""""""""""""""""""""""""""""""
"C,C++ 按F5编译运行
map <F5> :call CompileRunGcc()<CR>
map! <F5> <ESC>:call CompileRunGcc()<CR>func! CompileRunGcc()exec "w"if &filetype == 'c'exec "!g++ % -o %< ; if [ -f in ]; then ./%< < in; else ./%<; fi"elseif &filetype == 'cpp'exec "!g++ % -o %< ; if [ -f in ]; then ./%< < in; else ./%<; fi"elseif &filetype == 'java'exec "!javac %; java %<"elseif &filetype == 'sh':!./%elseif &filetype == 'python':!python %endifexec "q"
endfunc"C,C++的调试
map <F8> :call Rungdb()<CR>
map! <F8> <ESC>:call Rungdb()<CR>func! Rungdb()exec "w"exec "!g++ % -g -o %<"exec "!gdb ./%<"
endfunc"针对C++11
map <F6> :call CompileRunGcc11()<CR>
map! <F6> <ESC>:call CompileRunGcc11()<CR>func! CompileRunGcc11()exec "w"if &filetype == 'cpp'exec "!g++ --std=c++11 -O2 % -o %<_c11 ; if [ -f in ]; then ./%<_c11 < in; else ./%<_c11; fi"endifexec "q"
endfunc" 选中状态下 Ctrl+c 复制
"vmap <C-c> "+y" 映射全选+复制 ctrl+a
"map <C-A> ggVGY
"map! <C-A> <Esc>ggVGY"跳转到文件头和尾
map <F10> gg
map <F12> G"缩进相关
map <F7> :call Noindent()<CR>
map! <F7> <ESC>:call Noindent()<CR>i
map <F9> :call Indent()<CR>
map! <F9> <ESC>:call Indent()<CR>ifunc! Noindent()exec "set noautoindent"exec "set nocindent"exec "set nosmartindent"exec "filetype indent off"
endfuncfunc! Indent()exec "set autoindent"exec "set cindent"exec "set smartindent"exec "filetype indent on"
endfunc""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"自动补全
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<esc>i
":inoremap { {<CR>}<esc>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>ifunction! ClosePair(char)if getline('.')[col('.') - 1] == a:charreturn "\<Right>"elsereturn a:charendif
endfunction" 打开文件类型检测, 加了才可以用智能补全
filetype plugin indent on" 只在下拉菜单中显示匹配项目,并且会自动插入所有匹配项目的相同文本
set completeopt=longest,menu""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"自动插入文件头
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java,*.py, exec ":call SetTitle()" 
""定义函数SetTitle,自动插入文件头 
func SetTitle()"如果文件类型为.sh文件 if &filetype == 'sh' || &filetype == 'python'call setline(1,"\#########################################################################") call append(line("."), "\# File Name: ".expand("%")) call append(line(".")+1, "\# Author: minyu") call append(line(".")+2, "\# mail: wmy0831988@163.com") call append(line(".")+3, "\# Created Time: ".strftime("%c")) call append(line(".")+4, "\#########################################################################") if &filetype == 'sh'call append(line(".")+5, "\#!/bin/bash")elsecall append(line(".")+5, "\#!/usr/bin/python")endifcall append(line(".")+6, "") else call setline(1, "/*************************************************************************") call append(line("."), "    > File Name: ".expand("%")) call append(line(".")+1, "    > Author: minyu") call append(line(".")+2, "    > Mail: wmy0831988@163.com ") call append(line(".")+3, "    > Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "")endifif &filetype == 'c'call append(line(".")+6,   "#include <stdio.h>")call append(line(".")+7,   "#include <string.h>")call append(line(".")+8,   "")call append(line(".")+9,   "int main(){")                                                                    call append(line(".")+10,  "")call append(line(".")+11,  "}")endifif &filetype == 'cpp'call append(line(".")+6,   "#include <cstdio>")call append(line(".")+7,   "#include <cstring>")call append(line(".")+8,   "#include <algorithm>")call append(line(".")+9,   "#include <string>")call append(line(".")+10,  "#include <vector>")call append(line(".")+11,  "#include <set>")call append(line(".")+12,  "#include <map>")call append(line(".")+13,  "")call append(line(".")+14,  "int main(){")call append(line(".")+15,  "")call append(line(".")+16,  "}")endifif &filetype == 'java'call append(line(".")+6,   "public class  {")call append(line(".")+7,   "")call append(line(".")+8,   "      public static void main(String[] args) {")call append(line(".")+9,   "            " )call append(line(".")+10,  "      }" )call append(line(".")+11,  "" )call append(line(".")+12,  "}" )endif"新建文件后,自动定位到文件末尾autocmd BufNewFile * normal Gendfunc 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


这篇关于我的vimrc文件配置方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964975

相关文章

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H