[编程工具]_vimrc配置

2023-10-28 00:44
文章标签 工具 配置 编程 vimrc

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

_vimrc配置

1.vi与vim的不同

Vi和Vim都是UNIX操作系统中的文本编辑器。Vi是Unix操作系统中最早的文本编辑器之一,它是由Bill Joy在1976年开发的。Vim是Vi的改进版本,由Bram Moolenaar在1991年创建。

以下是Vi和Vim之间的一些不同之处:

  1. 用户界面:Vi有一个非常基本的用户界面,只能在命令行中使用。Vim则提供了更丰富的用户界面,包括命令行和GUI版本。

  2. 功能:Vim包含了Vi所有的功能,并且还提供了更多的功能,包括多级撤销、语法高亮、多窗口和多标签页等。

  3. 易用性:Vim比Vi更加易用,因为它提供了更多的快捷键和更多的命令,使编辑文本更加高效。

  4. 定制性:Vim比Vi更容易进行定制,可以通过插件、脚本和配置文件来实现。

总之,Vim是Vi的升级版,它提供了更多的功能和更好的用户体验,但是学习曲线可能会比Vi更陡峭一些。

2.配置vim的配置文件及其重要参数介绍

Vim的配置文件为~/.vimrc,即在用户的home目录下的.vimrc文件,也可通过命令“:echo $MYVIMRC”查看当前Vim的配置文件路径。

在 window 中,路径为:[用户目录]/_vimrc

以下是一些常用的Vim配置参数及其作用:

  • set number:显示行号
  • set relativenumber:显示相对行号
  • set cursorline:突出显示当前行
  • set tabstop=4:设置tab键宽度为4
  • set shiftwidth=4:当使用<<或>>命令时,每次缩进宽度为4
  • set expandtab:将tab键转换为空格
  • set autoindent:自动缩进
  • set smartindent:智能缩进,在编辑代码时根据上下文自动缩进
  • set nowrap:禁止自动折行
  • set incsearch:增量搜索,即在输入搜索关键字时,每输入一个字符就自动搜索
  • set hlsearch:高亮显示搜索结果
  • set ignorecase:搜索时忽略大小写
  • set showcmd:在底部状态栏显示当前输入的命令

建议的配置

" Vim with all enhancements
source $VIMRUNTIME/vimrc_example.vim" Use the internal diff if available.
" Otherwise use the special 'diffexpr' for Windows.
if &diffopt !~# 'internal'set diffexpr=MyDiff()
endif
function MyDiff()let opt = '-a --binary 'if &diffopt =~ 'icase' | let opt = opt . '-i ' | endifif &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endiflet arg1 = v:fname_inif arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endiflet arg1 = substitute(arg1, '!', '\!', 'g')let arg2 = v:fname_newif arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endiflet arg2 = substitute(arg2, '!', '\!', 'g')let arg3 = v:fname_outif arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endiflet arg3 = substitute(arg3, '!', '\!', 'g')if $VIMRUNTIME =~ ' 'if &sh =~ '\<cmd'if empty(&shellxquote)let l:shxq_sav = ''set shellxquote&endiflet cmd = '"' . $VIMRUNTIME . '\diff"'elselet cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'endifelselet cmd = $VIMRUNTIME . '\diff'endiflet cmd = substitute(cmd, '!', '\!', 'g')silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3if exists('l:shxq_sav')let &shellxquote=l:shxq_savendif
endfunction" 显示行号
set number" 语法高亮度显示
syntax on" 不创建交换文件
set noswapfile
" 保留 撤销 操作历史
set undofile
set nobackup" 设置操作历史文件的保存位置
set undodir=E:/Users/LY_win/vimfiles/.undo
" vim需要记住多少次历史操作
set history=1000
" 命令模式下,底部操作指令按下 Tab 键自动补全。第一次按下 Tab,会显示所有匹配的操作指令的清单;第二次按下 Tab,会依次选择各个指令
set wildmenu
set wildmode=longest:list,full
" 定义F1快捷键为切换vim窗口
map &ltF1&gt &ltC-w&gtw" 设置文件的代码形式 utf8, 中文不乱码
set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030" 设置gvim的字体
" set guifont=courier_new:h10" 按下Tab键后,vim显示的空格数
set tabstop=4" normal模式下,>>增加一级缩进、<<取消一级缩进、==取消全部缩进时,每一级缩进的空格数
set shiftwidth=4" 自动将Tab转为空格(防止Tab键在不同编辑器缩进不一致导致问题)
set expandtab" Tab转为多少个空格
set softtabstop=4" 光标所在行高亮
set cursorline
highlight CursorLine   cterm=NONE ctermbg=black guibg=NONE guifg=NONE" 关闭自动折行
"set nowrap" 垂直滚动时,光标距离顶部/底部的距离(单位:行)
set scrolloff=5" 水平滚动时,光标距离行首或行尾的距离(单位:字符)
set sidescrolloff=30" 设置行宽,即一行显示多少字符: 跟行内的空格有关
set textwidth=10" 是否显示状态栏:0表示不显示,1表示只在多窗口显示,2表示显示
set laststatus=2" 设置状态条显示的信息:文件名、光标所在字符的ASCII码、光标所在字符的ASCII码的十六进制、光标所在的位置、光标所在行之上的内容占整个文件的百分比、文件总行数
set statusline=\ %F%m%r%h%w\ \ \ \ ASCII=\%03.3b\ \ \ \ HEX=\%02.2B\ \ \ \ POS=%04l,%04v\ \ \ \ %p%%\ \ \ \ NumOfLine=%L
" 显示行尾的空格
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
" 光标遇到括号时,自动高亮对应的另一半括号
set showmatch" 命令行模式下,在底部显示当前键入的指令。例如键入dd删除一行时,键入第一个d,底部右侧显示d,完全键入dd时,操作完成,底部显示消失
set showcmd
" 搜索时,高亮显示搜索结果
set hlsearch" 搜索时,每输入一个字符,自动跳到第一个匹配的结果
set incsearch
" 搜索时忽略大小写
set ignorecase

reference

@misc{BibEntry2023Oct,
title = {{vimrc文件配置的全文收录xn–zg7c史上最全xn–3g7c附带中文解释xn–{ _ \_ _}-hm68a51CTO博客{ _ \_ _}vimrc文件颜色配置}},
year = {2023},
month = oct,
urldate = {2023-10-27},
language = {chinese},
note = {[Online; accessed 27. Oct. 2023]},
url = {https://blog.51cto.com/zpf666/2335640}
}

这篇关于[编程工具]_vimrc配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

Redis Cluster模式配置

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

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

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

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插