我的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

相关文章

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一