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

相关文章

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E