Vim 安装与基础操作指南

365bet主页器 时间: 2025-10-27 12:58:26 作者: admin 查阅次数: 5807 公众评价: 784
Vim 安装与基础操作指南

0x00 链接

Vim 官网

Vim GitHub

Vim 中文文档

0x01 准备

(1)下载与安装

在官网地址找到 Download 标签,在其中根据操作系统选择相应的版本,以下以 Windows 为例

点击 vim-win32-installer site至下载链接,根据系统位数下载相应的.exe或.zip文件

32位——x86

64位——x64

安装路径建议不设置在 C 盘中,安装内容建议使用完全

(2)快捷方式说明

gvim:正常模式标准的 Vim(正常开发的时候用)

gvim read-only:只读模式的 Vim(防误删误改方便查阅代码)

gvim easy:启动的时候是插入模式,适合普通 Windows 用户的习惯

(3)禁止 Vim 生成un~文件

当前小节内容参考自《禁止vim生成 un~文件 | 博客园-王学长》和《vim/gvim怎么禁止生成un~文件 | 百度经验》

这是 Vim 的 undofile 和备份文件,可以让你在关闭文件后再次打开时还可以撤销上次的更改

取消此功能的方法:在 Vim 软件安装目录中找到_vimrc,使用记事本打开,在其写入以下内容

set noundofile

set nobackup

set noswapfile

如果在 Windows 中,上述设置需要在 Vim 安装目录下的vimrc_example.vim中进行设置

原始设置内容:

if has("vms")

set nobackup " do not keep a backup file, use versions instead

else

set backup " keep a backup file (restore to previous version)

if has('persistent_undo')

set undofile " keep an undo file (undo changes after closing)

endif

endif

修改之后:

if has("vms")

set nobackup " do not keep a backup file, use versions instead

else

set nobackup " keep a backup file (restore to previous version)

if has('persistent_undo')

set noundofile " keep an undo file (undo changes after closing)

endif

endif

如果想使用这个功能的话,但是不想被那些文件烦的话,还可以写入

undodir=~/.undodir

(4)字体、中文、光标、行号、语法高亮、缩进、括号补全、备份与历史记录插件(可选操作)

当前小节内容参考自《windows10下安装、配置vim及YCM安装 | CSDN-既往不恋未来不迎》

以下设置写入至 Vim 配置文件——_vimrc

字体

set guifont=Consolas\ for\ Powerline\ FixedD:h16

字体:Consolas for Powerline FixedD

该字体文件非官方下载链接

字号:16

说明:等于号的右边和冒号之间是电脑上安装的某个字体的名字,注意字体中有空格的话,需要使用反斜杠\来对空格进行转义。冒号之后设置的是字体的大小。

中文

" 设置编码格式

set encoding=utf-8

set langmenu=zh_CN.UTF-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set fileencoding=utf-8

" 解决菜单乱码

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

" 设置中文提示

language messages zh_CN.utf-8

" 设置双字宽显示,防止有些字符显示不出来

set ambiwidth=double

光标

" 光标设置成块状且禁止闪烁

set gcr=a:block-blinkon0

" 显示光标当前位置,右下角可看到当前行和列数

set ruler

" 高亮显示当前行/列

set cursorline

set cursorcolumn

" 高亮显示搜索结果

set hlsearch

行号显示

set number

语法高亮

" 开启语法高亮功能

syntax enable

" 允许用指定语法高亮配色方案替换默认方案

syntax on

缩进

" 自适应不同语言的智能缩进

filetype indent on

" 将制表符扩展为空格

set expandtab

" 设置编辑时制表符占用空格数

set tabstop=4

" 设置格式化时制表符占用空格数

set shiftwidth=4

" 让vim把连续数量的空格视为一个制表符

set softtabstop=4

括号补全

inoremap ' ''i

inoremap " ""i

inoremap ( ()i

inoremap [ []i

inoremap { {}O

inoremap < <>i

备份与历史记录

" 禁止备份

set nobackup

" 保留历史记录

set history=500

(5)插件(可选操作)

当前小节内容参考自《windows10下安装、配置vim及YCM安装 | CSDN-既往不恋未来不迎》

a. 插件管理插件——Vundle

打开目录 C:/Users(用户)/用户名 ,此处打开命令行(该目录下可以找到 vimfiles 文件夹)

从 github 上克隆下来 Vundle:git clone https://github.com/VundleVim/Vundle.vim.git ~/vimfiles/bundle/Vundle.vim 放在vimfiles文件夹里

克隆完成后,在_vimrc中添加以下配置

" vundle插件环境设置

filetype off

set rtp+=~/vimfiles/bundle/Vundle.vim

" vundle管理的插件列表必须位于vundle#begin()和vundle#end()之间

call vundle#begin()

" 插件管理插件

Plugin 'VundleVim/Vundle.vim'

" 主题

Plugin 'altercation/vim-colors-solarized'

Plugin 'tomasr/molokai'

Plugin 'morhetz/gruvbox'

Plugin 'vim-airline/vim-airline-themes'

" 自动补全

Plugin 'Valloric/YouCompleteMe'

" 底部栏增强

" Plugin 'Lokaltog/vim-powerline'

Plugin 'vim-airline/vim-airline'

" 目录树

Plugin 'scrooloose/nerdtree'

" 格式化代码

Plugin 'Chiel92/vim-autoformat'

" 显示缩进线

Plugin 'nathanaelkane/vim-indent-guides'

" 彩虹括号

Plugin 'kien/rainbow_parentheses.vim'

" 插件列表结束

call vundle#end()

filetype plugin indent on

Vundle 可以安装、卸载插件

安装插件

只需在_vimrc文件的vundle#begin()和vundle#end()之间加入语句:Plugin [插件名],比如要安装 gruvbox 主题,输入:Plugin 'morhetz/gruvbox'。保存编辑,然后打开 Vim,输入::BundleInstall然后回车,安装完成后就会看到左下角的Done!

查看插件列表

在 Vim 中输入::BundleList

删除插件

在_vimrc中注释掉或者删掉该插件所对应的行,保存,然后在 Vim 中输入:BundleClean,然后回车,输入y表示确定删除,n表示放弃。

修改主题

在 Vim 中执行命令 :colorscheme [主题名称]

更多插件可以参考 Vim Awesome

b. 底部栏增强插件——airline

" airline设置

" 这个是安装字体后 必须设置此项"

let g:airline_powerline_fonts=1

" 底部栏的主题

let g:airline_theme="molokai"

" 打开tabline功能,方便查看Buffer和切换

let g:airline#extensions#tabline#enabled = 1

let g:airline#extensions#tabline#buffer_nr_show = 1

if !exists('g:airline_symbols')let g:airline_symbols = {}

endiflet g:airline_left_sep = '⮀'

let g:airline_left_alt_sep = '⮁'

let g:airline_right_sep = '⮂'

let g:airline_right_alt_sep = '⮃'

let g:airline_symbols.branch = '⭠'

let g:airline_symbols.readonly = '⭤'

let g:airline_symbols.linenr = '⭡'

c. 格式化代码插件——autoformat

" 格式化代码风格设置:C为ANSI

let g:formatdef_ansi='"astyle --style=allman --pad-oper"'

let g:formatters_c=['ansi']

let g:formatters_cpp=['ansi']

au BufWrite * :Autoformat

"设置快捷键F5自动格式化代码并保存

noremap :Autoformat:w

d. 彩虹括号——rainbow_parentheses

" 彩虹括号设置

let g:rbpt_colorpairs = [

\ ['brown', 'RoyalBlue3'],

\ ['Darkblue', 'SeaGreen3'],

\ ['darkgray', 'DarkOrchid3'],

\ ['darkgreen', 'firebrick3'],

\ ['darkcyan', 'RoyalBlue3'],

\ ['darkred', 'SeaGreen3'],

\ ['darkmagenta', 'DarkOrchid3'],

\ ['brown', 'firebrick3'],

\ ['gray', 'RoyalBlue3'],

\ ['black', 'SeaGreen3'],

\ ['darkmagenta', 'DarkOrchid3'],

\ ['Darkblue', 'firebrick3'],

\ ['darkgreen', 'RoyalBlue3'],

\ ['darkcyan', 'SeaGreen3'],

\ ['darkred', 'DarkOrchid3'],

\ ['red', 'firebrick3'],

\ ]

" 开启16对括号匹配

let g:rbpt_max = 16

let g:rbpt_loadcmd_toggle = 0

au VimEnter * RainbowParenthesesToggle

au Syntax * RainbowParenthesesLoadRound

au Syntax * RainbowParenthesesLoadSquare

au Syntax * RainbowParenthesesLoadBraces

e. 自动补全——YCM(YouCompleteMe)

省略,如有需要可以参考原文“1.7 自动补全神器YCM(YouCompleteMe)”部分

f. 目录树——nerdtree

" 目录树设置

nmap :NERDTreeToggle

在一般模式下,按Ctrl+N即可打开目录树

0x02 主要模式

(1)Normal Mode-普通模式

启动 Vim 后默认为普通模式

普通模式是 Vim 的默认模式,它用于导航、编辑和执行各种命令。在这个模式下,你可以移动光标、复制、粘贴、删除文本、搜索、替换等等

(2)Insert Mode-插入模式

在 Normal Mode 中推荐按i可以进入插入模式,按键退出

插入模式用于输入和编辑文本,就像其他常见的文本编辑器一样。在插入模式下,你可以直接键入文本

(3)Command Mode-命令模式

在 Normal Mode 中按:或/或?可以进入命令模式,按键退出

命令模式用于执行各种高级操作,如保存文件、搜索和替换、设置编辑器选项等

(4)Visual Mode-可视模式

在 Normal Mode 中按v可以进入可视模式,按键退出

(5)Replace Mode-替换模式

在 Normal Mode 中按R可以进入替换模式,按键退出

(6)Select Mode-选择模式

按住键以及方向键即可进入选择模式,按键退出

0x03 操作(2006)

当前节内容参考自 ViEmu

(1)basic editing

在普通模式中,h j k l 是 vi/vim 的光标移动键,相比方向键更容易操作

在普通模式中,按 i 键进入插入模式,光标从块状变为竖线,此时可以输入文本,按ESC返回普通模式

在普通模式中,按x键删除当前字符,或按X键删除左侧的字符

在插入模式中,按A键在行末插入文本

在普通模式中,按u键撤销最后的操作——传统的 vi 仅能撤销一级,但是 Vim 支持无限制撤销(CTRL+R还原操作)

0键可以直接跳转至行首,$键可以直接跳转至行末,^键可以直接跳转至首个非空白位置

在普通模式中,按w b e键可以按照所有字母数字或标点符号的序列移动光标

对语句function(x, y, z);的分割示例:function ( x , y , z );

在普通模式中,按W B E键可以按照无空白字符块的序列移动光标

对语句function(x, y, z);的分割示例:function(x, y, z);

在插入模式中,按R键可以使用覆写光标进行插入文本,此时键入的文本会覆盖光标所在位置已存在的文

在命令模式中,使用命令:w可以保存文本,使用:q命令可以退出

(2)operators & repetition

在普通模式中,按f键再按另外一个需要查询位置的字符键,光标会跳转至这个字符在当前行所在的位置

输入fb,光标悬停位置斜体示例:zabcd

在普通模式中,按t T键可以做到与f键相同的功能,区别在于光标会正好停在该字符之前的字符

输入tb,光标悬停位置斜体示例:zabcd

在普通模式中,按d键以及动作键可以删除在光标和动作键描述的内容之间的文本,如dw、df等

在普通模式中,按c键可以做到与d键相同的功能,区别在于删除完成后会进入插入模式

一些动作键如j k是线条化的,会删除从起始行到结束行全部的内容

在普通模式中,.键可以重复最后一次输入的动作,包括文本输入、删除等

在普通模式中,d2w可以删除光标后2个使用w选择的内容;d2t,可以删除光标后全部内容直至第2个逗号前

在普通模式中,2i可以重复在完成输入操作按下ESC之后文本

在普通模式中,重复操作键两次可以操作当前行,如cc或dd等

在普通模式中,按v键可以进入可视模式(仅限 Vim 中)。移动时,文本将高亮显示。按下操作键可对选中的文本进行操作

在普通模式中,按V键可以进入可视行模式,与按v键的功能相同,区别在于会按行高亮进行操作

在可视模式中,按CTRL+v可以选中矩形块

(3)yank & paste

在普通模式中,按y键以及动作键可以复制动作键选中的内容

该功能也可以在可视模式中执行

当文本使用d c x删除后也会被复制

在普通模式中,按p键可以在光标的(如果按字符则右侧;如果按行则另起一行)后粘贴y键复制的内容

在普通模式中,按P键可以在光标(如果按字符则右侧;如果按行则另起一行)前粘贴y键复制的内容

在普通模式中,按yy可以复制当前行

在普通模式中,按"键加一个a-z范围内的字符在任何复制/删除/粘贴命令前可以选择一个寄存器。一个在复制/删除前的A-Z的寄存器意思是“附加副本”。"*或"+可以选择系统的粘贴板

在普通模式中,按o键可以在当前行下的空行中进入插入模式

在普通模式中,按O键可以做到与o键相同的功能,区别在于在当前行上的空行进入

(4)searching

在普通模式中,/是基本的搜索动作。在键入/后键入要搜索的文本,然后按回车键,光标会定位在首次查找到的位置。作为一个动作,可以在操作符之后使用它,也可以在可视模式下使用

?可以做到与/键相同的功能,区别在于光标会定位到最后一个符合查询结果的位置

n可以在同一方向重复最后一次的搜索,N可以在反方向重复最后一次搜索

*可以向前搜索光标下的标识符的下一个实例

#可以做到与*键相同的功能,区别在于向后搜索

(5)marks & macros

在普通模式中,按m键以及一个a-z字符键可以来设置标记

在普通模式中,按`` 键以及一个a-z`字符键可以跳转至该字符键对应的标记

在普通模式中,按'键以及一个a-z字符键可以跳转至在标记所在行第一个非空白位置

A-Z标记是全局的,a-z标记是每个缓冲区的

``.`可以指到上次修改的位置

在普通模式中,按q键以及一个a-z字符键可以开始宏记录,再次按q键可以停止宏记录

在普通模式中,按@键以及一个a-z字符键可以回放对应的宏记录

在普通模式中,按@@可以重复最后一次的宏指令

(6)various motions

%可以在匹配成对的括号之间进行跳跃

H M L分别可以跳转至屏幕显示的顶部、中部、底部

G可以跳转到文件的结尾处,或者到#输入之前的行

-/+可以跳转至上/下一行

(和)分别可以跳转至当前语句的开头/结尾

{和}分别可以跳转至上/下空行

[[和]]可以跳转至o列上/下的 ‘ { ’

(7)various commands

在普通模式中,按J键可以将当前行与下一行或当前可视选择中的所有行连接起来

在普通模式中,按r以及一个任意字符可以替换当前字符为键入的任意字符

在普通模式中,C是c$的缩写,修改至行末,完成后会进入插入模式

在普通模式中,D是d$的缩写,删除至行末

在普通模式中,Y是yy的缩写,复制整行

在普通模式中,按s键可以删除光标下的字符并进入插入模式

在普通模式中,按S键可以清空当前行并进入插入模式

在普通模式中,按>键以及一个动作键可以缩进一行或多行

在普通模式中,按<键以及一个动作键可以取消缩进

在普通模式中,按=键以及一个动作键可以格式化选中范围内的文本

> < =操作在可视模式/可视行模式也可以执行,同时在普通模式中双重输入(如>>)可以操作当前行

在普通模式中,按~键可以切换光标下字符的大小写

0x04 命令速查表(2023)

详细内容参考 vim-chestsheet | github-chloneda

-End-

关联

攻速空血流如何堆满140%攻速 可多渠道堆
best365体育入口中文版

攻速空血流如何堆满140%攻速 可多渠道堆

📅 09-19 👁️ 7983
团结一致的意思
best365体育入口中文版

团结一致的意思

📅 07-18 👁️ 6341
微软易升Win11怎么操作?升级步骤详解?
beat365体育亚洲

微软易升Win11怎么操作?升级步骤详解?

📅 07-03 👁️ 459

链接