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

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关