0


定制VIM体验:全面的`.vimrc`配置指南

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:VIM是一个受到广泛喜爱的文本编辑器,其强大功能可以通过

 .vimrc 

配置文件进行个性化定制。本文将深入介绍

 .vimrc 

配置文件中的关键设置,包括基本编辑行为、颜色主题、快捷键映射、文件类型识别、自动缩进、插件管理、搜索替换、文本对象选择、缓冲区和窗口管理、自动完成、状态栏、备份和交换文件、撤销分支、自动缩进修复以及忽略文件等。这些配置帮助用户提升开发效率,享受个性化的编辑体验。 VIM配置文件

1. .vimrc配置文件的基本作用和自定义功能

1.1 .vimrc配置文件的基础认识

 .vimrc 

是VIM编辑器的一个配置文件,其主要作用是允许用户根据自己的喜好和习惯来定制VIM编辑器的界面和行为。通过编辑

 .vimrc 

文件,用户可以设置环境变量、定义快捷键、启用或禁用特定功能以及调整VIM的外观。

1.2 自定义功能的实现

通过修改

 .vimrc 

文件,用户可以实现VIM编辑器的自定义功能。例如,添加自定义的映射(Mappings)和设置(Options),从而提高编码效率和便捷性。此外,还可以通过配置文件启用或自定义各种插件,为VIM添加新功能。自定义功能不仅限于增强编辑器的性能,更涉及优化工作流程,提升开发体验。

" 示例:.vimrc中的映射配置
nnoremap <C-h> <Left> " 将Ctrl+h映射到左箭头键,用于快速光标移动
nnoremap <C-l> <Right> " 将Ctrl+l映射到右箭头键,用于快速光标移动
set number " 启用行号显示
set autoindent " 自动缩进功能

在上述配置中,定义了简单的快捷键映射和一些基本设置,这些更改能够让用户在编辑代码时感受到更直观和高效的操作方式。

2. VIM界面、快捷键、插件及其他功能的个性化调整

2.1 VIM界面定制

VIM作为一个高度可定制的文本编辑器,它提供的界面定制功能让用户能够根据自己的喜好和需求来调整编辑器的工作方式。本节将详细讨论如何进行VIM界面的定制,包括外观的调整和布局的优化。

2.1.1 定制界面外观

VIM的界面外观可以通过多种设置进行定制,包括背景色、字体大小、颜色主题等。首先,可以通过更改颜色方案来改善视觉体验。VIM有很多现成的颜色方案可供选择,也可以自定义颜色方案。可以通过以下步骤更改颜色方案:

  1. 使用 :colorscheme 命令选择内置的颜色方案。
  2. 如果要使用自定义颜色方案,需要将颜色方案文件放到 ~/.vim/colors/ 目录下,并通过 :colorscheme 命令来加载。
" 示例命令:启用名为"MyColorScheme"的自定义颜色方案
colorscheme MyColorScheme

此外,可以使用

 :set 

命令来调整字体大小和界面其他视觉元素。比如调整字体大小的命令如下:

" 示例命令:设置字体大小为10
set guifont=Consolas:h10

还可以通过创建或修改

 ~/.vimrc 

文件中的配置来永久保存这些设置。

2.1.2 优化界面布局

VIM允许用户通过设置来优化编辑器的界面布局。例如,可以使用

 :set 

命令来隐藏或显示菜单栏、工具栏、状态栏等:

" 示例命令:隐藏状态栏
set laststatus=0

" 示例命令:显示菜单栏和工具栏
set guioptions+=mT

布局还可以通过分割窗口来实现多窗口同时编辑,这是VIM的一个强大功能。使用

 :split 

 :vsplit 

命令可以创建水平或垂直的分割窗口。例如,要在水平方向上分割窗口,可以使用如下命令:

" 示例命令:水平分割当前窗口
split

" 示例命令:垂直分割当前窗口
vsplit

分割后,可以使用快捷键(如

 Ctrl + w 

和方向键)来在各个分割窗口之间切换。

2.2 快捷键的个性化设置

VIM的快捷键系统非常灵活,用户可以根据自己的习惯来创建和修改快捷键,以提高操作效率。

2.2.1 常用快捷键的修改与优化

对于一些常用的命令,可以通过映射快捷键来减少操作步骤。例如,可以将常用的命令映射到空闲的功能键上:

" 示例命令:将F2键映射为撤销命令
nnoremap <F2> :undo<CR>

" 示例命令:将F3键映射为保存命令
nnoremap <F3> :w<CR>

对于不常用的快捷键,可以进行重映射以避免误操作。例如,VIM默认使用

 Q 

进行宏录制,如果不使用这个功能可以将其映射到其他用途上:

" 示例命令:取消默认的Q快捷键,将其映射到新的命令上
nnoremap Q :grep<space>
2.2.2 自定义快捷键

对于一些特定的操作,如果默认快捷键不符合用户习惯,可以自定义快捷键。比如,可以自定义搜索替换的快捷键:

" 示例命令:映射F5键为搜索替换功能
nnoremap <F5> :%s//新内容/gc<left><left><left>

在自定义快捷键时,需要考虑避免与其他快捷键冲突,以及确保快捷键的操作符合逻辑,便于记忆。

2.3 插件的选取与管理

VIM的插件系统非常丰富,可以极大地增强编辑器的功能。用户可以根据自己的需求选择合适的插件,并通过特定的方法进行管理。

2.3.1 插件的作用和选择标准

插件能够为VIM添加如代码补全、语法高亮、代码折叠等高级功能。选择合适的插件对于提高开发效率至关重要。在选择插件时,应该考虑以下标准:

  1. 插件是否活跃,拥有良好的社区支持和维护。
  2. 插件是否兼容当前VIM版本。
  3. 插件的功能是否符合个人需要。
  4. 插件的安装和配置是否简便。

一个常用的插件管理方式是使用

 pathogen.vim 

,它可以将插件管理简化为添加和删除插件目录的操作。要使用

 pathogen.vim 

,只需将插件目录放到

 ~/.vim/bundle 

下即可。

2.3.2 插件安装和配置方法

安装插件的具体步骤可能因插件而异,但一些基本的命令是通用的。例如,使用

 git 

安装插件的过程如下:

  1. 克隆插件仓库到 ~/.vim/bundle 目录: bash git clone ***
  2. ~/.vimrc 文件中添加插件配置信息: ```vim set nocompatible " 关闭vi兼容模式 filetype off " 必须在运行Vundle之前关闭文件类型检测 " 启动Vundle set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin()

" 插件列表 Plugin 'VundleVim/Vundle.vim' " Vundle插件管理器

" 其他插件...

call vundle#end() " 结束Vundle配置 filetype plugin indent on " 重新开启文件类型检测 ```

  1. 运行 :PluginInstall 命令来安装和配置插件。

通过这种管理方式,用户可以轻松地添加、更新和删除插件。

2.4 其他VIM高级功能

VIM不仅仅是一个文本编辑器,它还提供了很多高级功能来增强用户体验和提高工作效率。

2.4.1 语法高亮与代码折叠

VIM支持语法高亮,可以为不同类型的代码显示不同的颜色。语法高亮功能通过

 runtime 

文件夹下的配置文件来控制。要启用语法高亮,可以使用以下命令:

" 示例命令:开启语法高亮
syntax on

代码折叠功能可以折叠一段代码只显示其头部,这对于阅读和导航长文件非常有用。VIM中的折叠可以基于空格、缩进或特定标记进行。以下是一些基本的代码折叠设置:

" 示例命令:设置基于空格的折叠
set foldmethod=indent
2.4.2 分屏与标签页的使用技巧

VIM支持多窗口(分屏)和标签页的功能,使得可以同时打开多个文件进行编辑。使用

 split 

 vsplit 

命令可以创建分屏,使用

 tabnew 

可以打开新的标签页:

" 示例命令:水平分割窗口
split

" 示例命令:垂直分割窗口
vsplit

" 示例命令:打开新标签页
tabnew

在分屏和标签页之间切换可以使用快捷键(如

 Ctrl + w 

 gt 

),这使得在不同的文件之间进行快速导航变得非常方便。

通过本章节的介绍,我们了解了如何对VIM界面进行个性化调整,包括界面外观定制、快捷键优化、插件选取和管理以及其他高级功能的使用技巧。这为用户提供了强大的工具来定制一个高效、符合个人使用习惯的VIM编辑环境。

3. .vimrc文件关键配置项详解

3.1 常用配置项概览

3.1.1 映射(Mappings)配置

映射配置是.vimrc文件中的核心部分之一,它允许用户创建自定义的快捷键映射,从而提高编辑效率。例如,将普通模式下的

 F2 

键映射为保存当前文件:

nnoremap <F2> :w<CR>

这里的

 nnoremap 

表示在普通模式下进行非递归映射。

 <F2> 

是我们创建的快捷键,

 :w<CR> 

代表保存文件的命令,其中

 <CR> 

代表回车键。

3.1.2 选项(Options)设置

选项设置允许用户调整VIM的行为以匹配个人习惯。例如,开启显示行号:

set number

这个命令将开启VIM窗口左侧的行号显示,方便定位文本位置。

 set 

命令后跟的选项将根据需求设置VIM的不同参数,如文本颜色方案、缩进行为等。

3.2 核心配置项深入解析

3.2.1 文件类型检测与插件启用

VIM的文件类型检测和插件启用是一个自动化过程,但用户可以通过.vimrc文件进行微调。例如,你可以为Python文件指定特定的插件和设置:

if has("autocmd")
  autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
  autocmd FileType python setlocal omnifunc=v:lua.vim.lsp.omnifunc
endif

这里使用了

 autocmd 

命令为Python文件类型设置了一系列的选项,包括空格和缩进的行为,以及启用LSP(语言服务器协议)的智能代码补全功能。

3.2.2 环境变量和路径设置

在.vimrc文件中设置环境变量和路径可以用来调整VIM的搜索行为和配置插件路径。比如,设置Python的搜索路径:

let &path += ',' . $HOME . '/.vim/bundle/*'

这条命令扩展了VIM的文件搜索路径,添加了本地插件目录到路径中。

3.3 高级配置技巧

3.3.1 自动命令(Auto-Commands)

自动命令是在某些事件发生时自动执行的命令集合。例如,每次保存文件时自动运行代码格式化工具:

autocmd BufWritePre *.py :Black

这条命令会监听所有Python文件的

 BufWritePre 

事件,并在文件保存前自动执行

 Black 

代码格式化工具。

3.3.2 函数与脚本编程

VIM支持内建的脚本编程,允许用户编写自定义函数来执行复杂的任务。例如,创建一个函数来处理当前文件的所有Python警告:

function! CheckPythonWarnings()
  exec 'py3f %'
endfunction

autocmd BufWritePost *.py call CheckPythonWarnings()

这里定义了一个名为

 CheckPythonWarnings 

的函数,它使用Python解释器来执行当前文件,并调用

 py3f 

命令检查Python警告。然后我们设置一个自动命令,在每次Python文件写后保存时调用该函数。

在第三章中,我们通过深入解析.vimrc文件中的常用配置项,了解了如何通过映射、选项、自动命令和脚本编程来定制和优化VIM环境。这些配置使得VIM不仅是一个文本编辑器,更成为了一个高效编程的开发环境。

接下来的章节将继续深入探讨如何利用VIM提升开发效率,包括编辑与导航优化、插件增强功能以及代码编写与管理的便捷技巧。

4. 提升开发效率的VIM定制技巧

VIM是程序员编辑器中的瑞士军刀,其强大功能和高度可定制性为开发效率带来了无限的提升空间。本章节将深入探讨如何通过VIM的定制来进一步提升开发效率,我们将从编辑与导航优化、插件增强功能以及代码编写与管理的便捷性三个方面展开。

4.1 编辑与导航优化

4.1.1 快速移动与定位

在VIM中,快速移动与定位是提高编辑效率的基础。通过掌握一些快捷键和命令,可以在大量代码中迅速找到需要编辑的位置。

w       " 移动到下一个单词的开头
e       " 移动到当前单词的末尾
0       " 移动到当前行的开头
$       " 移动到当前行的末尾
gg      " 移动到文件的第一行
G       " 移动到文件的最后一行

为了进一步提升效率,可以自定义快捷键,例如:

nnoremap <C-f> :向下滚动一屏<CR> " 自定义快捷键,Ctrl+f向下滚动
nnoremap <C-b> :向上滚动一屏<CR> " 自定义快捷键,Ctrl+b向上滚动

此外,VIM的标签跳转功能也可以通过插件如Tagbar来增强,它允许你快速切换和浏览当前文件中定义的变量、函数等符号。

4.1.2 代码块编辑技巧

代码块编辑是提升编程效率的关键。VIM 提供了多种模式和命令来高效地处理代码块。

一个实用的技巧是使用可视模式(Visual Mode)来选择多行代码,然后一次性进行操作。例如,使用

 V 

进入可视行模式,然后使用

 d 

来删除选中的行。

在编辑代码块时,VIM的

 % 

命令可以自动匹配括号,

 ci( 

 ci[ 

命令可以用于更改括号内的内容,这对于修改函数参数、列表元素等内容非常方便。

4.2 插件增强功能

4.2.1 代码补全与模板插件

为了加快代码的编写,VIM支持安装代码补全插件,如YouCompleteMe和Deoplete。这些插件通过分析你的代码项目来提供更准确的补全建议。

代码模板插件如Ultisnips,可以让你快速插入常见的代码片段,比如

 for 

循环、

 if 

语句等。通过定义缩写和片段,你可以一键生成复杂的结构,大幅减少重复性劳动。

安装插件的步骤通常如下:

git clone ***

 .vimrc 

中配置插件:

Plugin 'VundleVim/Vundle.vim'
Plugin 'ycm-core/YouCompleteMe'
Plugin 'SirVer/ultisnips'

4.2.2 项目管理与版本控制插件

项目管理可以通过如NERDTree这样的插件来进行。它提供了一个侧边栏,方便浏览项目结构,并快速打开文件。同时,VIM与Git等版本控制系统的集成也很重要,插件如Fugitive让VIM能够提供完整的Git操作界面。

通过这些插件,你可以直接在VIM中执行版本控制操作,如提交更改、检出分支等,无需离开编辑器。

4.3 便捷的代码编写与管理

4.3.1 快速代码片段插入

快速插入代码片段对于重复性编程任务来说十分有用。前面提到的Ultisnips插件对此提供了完美的支持,而其他插件如Snipmate和Emmet(针对HTML)也都是不错的选择。

4.3.2 代码注释与格式化

代码注释是日常工作流的一部分,因此使用VIM的自动注释功能可以节省时间。插件如 Commentary 可以快速注释代码块。

" 使用 Commentary 插件进行注释
nnoremap <leader>c :Commentary<CR>
" 使用 Commentary 插件解除注释
nnoremap <leader>uc :Commentary<CR>

代码格式化则让代码保持一致的风格,这对于协作和代码维护至关重要。Tabular插件可以用来对齐等号、逗号等,而 indent-guides 插件可以可视化缩进层次。

" 使用 Tabular 插件对齐代码
:Tab /=

以上这些技巧和插件,当合理配置和使用时,将极大提升VIM作为开发工具的效率和能力。但如何将这些内容整合到你的

 .vimrc 

配置中,以及如何在实际使用中发挥最大效能,则需要进一步的实践和调整。在下一章节,我们将深入探讨如何管理这些VIM插件,并分享一些实用的管理方法。

5. 管理VIM插件的方法与实践

5.1 插件管理器的选择

5.1.1 Vundle和Pathogen的比较

在VIM的插件生态系统中,Vundle和Pathogen是两个最流行的插件管理器。它们各有特点,为用户提供了不同的插件管理体验。

Pathogen是由Tim Pope编写的一个插件管理器,它通过在

 ~/.vim/bundle 

目录下创建符号链接来管理插件。这种方式的优点是插件安装和卸载方便快捷,不会修改VIM的运行环境,从而保持了环境的干净整洁。但是,Pathogen不能很好地处理插件间的依赖关系,并且在更新插件时,需要手动更新符号链接。

Vundle在功能上更为全面,它支持插件的安装、更新、搜索和清理等操作。Vundle通过定义特定的命令来管理插件,如

 BundleInstall 

用于安装插件,

 BundleUpdate 

用于更新插件等。Vundle还支持从GitHub、GitLab等源直接安装插件,极大地方便了用户。

5.1.2 使用Vundle或Pathogen进行插件安装

** 使用Vundle安装插件的步骤: **

  1. 首先,需要在VIM中安装Vundle。通常通过克隆Vundle的GitHub仓库到本地实现: bash git clone ***
  2. 然后,在 ~/.vimrc 配置文件中加入Vundle的初始化配置: vim set nocompatible " 关闭VI兼容模式 filetype off " 必须关闭filetype,才能让Vundle正确加载插件 set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 让Vundle管理Vundle,必须 Plugin 'VundleVim/Vundle.vim' " 其他插件的添加 call vundle#end() " 结束Vundle管理 filetype plugin indent on " 重新打开filetype,并启用插件和缩进设置
  3. 在初始化配置之后,添加希望安装的插件列表。例如添加NERDTree插件: vim Plugin 'scrooloose/nerdtree'
  4. 保存并退出 ~/.vimrc 文件后,在VIM中运行 :PluginInstall 命令来安装所有列出的插件。

** 使用Pathogen安装插件的步骤: **

  1. 同样,首先克隆Pathogen的仓库到本地: bash git clone ***
  2. ~/.vimrc 中添加以下配置来启用Pathogen: vim runtime bundle/vim-pathogen/autoload/pathogen.vim call pathogen#infect() filetype plugin indent on
  3. 将新插件的目录放入 ~/.vim/bundle 下即可自动被加载。

5.2 插件的日常管理

5.2.1 更新与维护插件

插件的更新与维护是保证VIM环境稳定和高效的重要步骤。使用Vundle,更新插件的步骤通常为:

  1. 在VIM中运行 :BundleUpdate 命令,该命令会列出所有可以更新的插件。
  2. 按照提示,接受更新操作并等待Vundle完成下载和安装过程。
  3. 更新完成后重启VIM,以确保新版本的插件能够生效。

对于维护插件,主要是删除不再需要的插件。在Vundle中,这可以通过简单的操作完成:

  1. ~/.vimrc 文件中找到不再需要的插件条目并删除。
  2. 保存并退出配置文件。
  3. 在VIM中运行 :BundleClean 命令,Vundle将会清理掉所有未在配置文件中声明的插件。

5.2.2 解决插件冲突

插件冲突通常发生在两个或多个插件使用了相同的快捷键或功能时。解决插件冲突可以采用以下策略:

  • 通过VIM的 :verbose map <key> 命令查看哪个插件定义了特定的快捷键。
  • 修改冲突插件的快捷键配置,可以通过修改 ~/.vimrc 中的映射配置或直接修改插件文件中的代码来实现。
  • 如果两个插件的功能有重叠,可以考虑卸载其中一个,或寻找替代的插件。

5.3 插件配置与优化

5.3.1 插件配置文件解析

大多数VIM插件都带有自己的配置文件,通常位于插件安装目录下的

 plugin 

 ftplugin 

目录中。这些配置文件是VIM脚本,其中包含了插件的初始化设置和功能扩展。

解析插件配置文件时,需要掌握VIM脚本的基本语法,例如变量、函数、条件判断等。举个例子,一个典型的插件配置文件可能包含如下内容:

" 插件的全局变量设置
let g:plugin_variable = 'value'

" 插件的函数定义
function! PluginFunction() abort
    " 函数体内容
endfunction

" 插件的快捷键映射
nnoremap <Leader>f :PluginFunction<CR>

" 自定义命令
command PluginCommand call PluginFunction()

5.3.2 配置项的优化调整

为了确保插件的最佳表现和个性化定制,用户通常需要对插件的配置项进行一些优化调整。这通常包括但不限于以下步骤:

  • 根据个人使用习惯,调整快捷键映射。
  • 根据需求启用或禁用某些插件功能。
  • 修改插件的颜色方案以更好地匹配个人喜好。
  • 调整插件的性能相关设置,比如缓冲区大小、延迟加载等。

优化调整通常需要用户对VIM和插件的内部工作方式有一定的了解。在调整之前,可以查看插件的帮助文档或源代码了解可用的配置项,然后在

 ~/.vimrc 

或插件的配置文件中进行修改。例如,要启用一个插件的特定功能,可以找到如下配置项进行修改:

" 在插件配置文件中启用特定功能
let g:plugin_option = 1

通过这些步骤,用户可以最大化地利用VIM插件,同时避免不必要的功能干扰,从而提高开发效率和使用满意度。

6. 高级编辑功能,如搜索替换和自动完成的配置

6.1 搜索与替换功能提升

6.1.1 高级搜索命令

VIM的搜索功能强大,可以通过正则表达式来实现复杂的文本搜索。使用

 / 

来启动搜索,例如,若要搜索当前文件中所有的

 function 

,可以输入

 /function 

。在搜索完成后,使用

 n 

键可以在匹配项间跳转,使用

 N 

键则可以反向跳转。

要进行更复杂的搜索,可以使用VIM的正则表达式。例如,使用

 \v 

后跟正则表达式可以实现非贪婪匹配、多行匹配等高级特性。

/\vfunction\w+

上述命令会匹配所有以

 function 

开头后跟一个或多个单词字符的字符串。

6.1.2 替换操作的优化技巧

VIM的替换命令同样强大。使用

 :s 

进行替换操作,如将文件中所有

 variable 

替换为

 var 

:

:s/variable/var/g

这里

 g 

标志意味着全局替换。如果要替换每一行中的第一个匹配项,可以使用

 c 

标志进行确认替换:

:%s/variable/var/gc

更多的替换技巧可以包括使用捕获组和反向引用进行复杂的文本处理。例如:

:%s/\v(.*)\n\1/\1/g

这个命令可以删除连续两行的重复内容。

6.2 自动完成机制的配置与优化

6.2.1 插件增强的自动完成

VIM社区提供了多种自动完成插件,如YouCompleteMe、Deoplete等。这些插件可以在VIM中提供类似现代IDE的自动完成体验。以YouCompleteMe为例,安装后,通过

 Ctrl + Space 

即可触发自动完成。

安装YouCompleteMe插件涉及到编译安装,通常需要依赖于Python环境,具体步骤如下:

  1. 首先需要确保VIM是8.0版本以上。
  2. 使用Vundle或Pathogen安装插件。
  3. 按照插件的官方文档进行编译安装。

6.2.2 代码补全的效率调整

配置自动完成插件时,可以根据个人喜好调整补全的优先级和行为。例如,YouCompleteMe提供了多种触发补全的方法和补全策略。可以根据需要启用或禁用特定的语言服务器和补全触发字符。

例如,可以设置触发补全的延迟时间来提高效率:

let g:ycm_min_num_identifier_chars = 2

上述设置缩短了触发补全的最小字符数,从而让补全更加迅速。

6.3 其他高级编辑特性

6.3.1 宏录制与使用

VIM的宏录制是一个非常实用的工具,用于自动化重复性的编辑任务。通过

 q 

键开始录制宏,并将其存储在一个寄存器中,例如:

q

上述命令将一系列命令录制到寄存器

 q 

中。然后可以使用

 @q 

来执行这些命令,甚至可以使用

 @@ 

来重复上一次宏的执行。

6.3.2 多光标编辑与选择文本

VIM支持通过插件或内置功能实现多光标编辑,例如,安装插件

 vim-easy-motion 

后,可以在多个位置插入光标,这样就可以同时编辑多个区域。

使用

 Ctrl + v 

进入块选择模式后,可以使用箭头键选择文本块,这样就可以对多个列进行编辑。此外,

 g Ctrl + v 

则可以进行行间多光标选择。

通过上述高级编辑功能的合理配置和使用,可以极大地提高代码编辑和文本处理的效率,让VIM成为一个更为强大的代码编辑器。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:VIM是一个受到广泛喜爱的文本编辑器,其强大功能可以通过

 .vimrc 

配置文件进行个性化定制。本文将深入介绍

 .vimrc 

配置文件中的关键设置,包括基本编辑行为、颜色主题、快捷键映射、文件类型识别、自动缩进、插件管理、搜索替换、文本对象选择、缓冲区和窗口管理、自动完成、状态栏、备份和交换文件、撤销分支、自动缩进修复以及忽略文件等。这些配置帮助用户提升开发效率,享受个性化的编辑体验。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

标签:

本文转载自: https://blog.csdn.net/weixin_42163404/article/details/141842575
版权归原作者 Aurora曙光 所有, 如有侵权,请联系我们删除。

“定制VIM体验:全面的`.vimrc`配置指南”的评论:

还没有评论