【Vim 核心攻略】 —— 文本编辑高手的进阶秘籍

简介: Vim 是效率与优雅的化身,蕴藏着无尽的可能。在这里,我希望通过记录点滴心得,让更多人发现它的魅力。或许,某个不经意的技巧、一个贴心的配置,便能让你与 Vim 的旅途更加契合。愿这片小小的天地,成为你探索高效编辑世界的一盏微光。

辛勤创作的我们🥰


==各位于晏,亦菲们请看==

Vim 全解析:从入门到精通,开启高效文本编辑之旅

@[toc]
💦你在什么环境下写代码、调试、编译、链接代码?
Visual Studio 2022。VScode。IntelliJ IDEA。Eclipse…
对于上面这种环境,我们称之为集成开发环境(IDE)。然而,相比我们在 Linux 中大部分情况下,我们所使用的工具都是独立的工具 —— 比如我们写代码用 Vim、编译用 gcc/g++、调试用 gdb、维护项目关系用 make/Makefile 等。在Linux环境中,vim可谓是程序员们的老朋友了。
在文本编辑的征程中,效率至上。Vim 以其独特模式系统独树一帜。与普通编辑器不同,它的普通模式用于快速浏览与定位,插入模式助力文字输入,可视模式实现区域操作,命令行模式管控文件与高级功能。各模式协同,大幅提升编辑效率与精准度。下面,就让我们深入探究 Vim 这款最强大的编辑器。

Vim 是一种强大且高度可定制的文本编辑器,广泛用于软件开发、系统管理和各种文本处理任务。它基于更早期的编辑器 Vi,并对其进行了扩展,因此也被称为 "Vi Improved"(Vi 的增强版)。Vim 的特点是快捷键驱动、支持多模式编辑以及可扩展性强。


1、Vim的下载和配置

1.1、下载 Vim

  • 在 Linux 系统:

大多数 Linux 发行版默认预装 Vim。如果未安装,可以通过包管理器安装:

Debian/Ubuntu:

sudo apt update
sudo apt install vim

CentOS/RHEL:

sudo yum install vim

Arch Linux:

sudo pacman -S vim
  • 在 macOS

macOS 通常自带 Vim,但版本可能较旧。建议使用 Homebrew 安装最新版:

brew install vim
  • 在 Windows

到 Vim 的官方页面下载:vim官网
或使用包管理工具(如 scoopChocolatey)安装:

  • Scoop:
 scoop install vim
  • Chocolatey:
choco install vim
  • 在 WSL(Windows Subsystem for Linux)

如果你在 Windows 上使用 WSL,安装方式与 Linux 相同:

sudo apt update
sudo apt install vim

1.2、Vim的配置文件

Vim 的配置文件是 .vimrc(Linux/macOS)_vimrc(Windows),用于定义 Vim 的行为、快捷键、主题等。

配置文件的位置:

  • Linux/macOS:~/.vimrc
  • Windows:C:\Users\<用户名>_vimrc
  • WSL:~/.vimrc

创建或编辑配置文件:
如果配置文件不存在,可以创建一个:

vim ~/.vimrc

1.3、 配置 Vim

以下是一个基础的 .vimrc 配置文件,涵盖常用功能,如行号显示、语法高亮、缩进设置等。

" 基本设置
set number              " 显示行号
set relativenumber      " 显示相对行号
set cursorline          " 高亮当前行
set showcmd             " 显示命令
set wildmenu            " 命令补全菜单
set mouse=a             " 启用鼠标支持

" 文件编码
set encoding=utf-8      " 使用 UTF-8 编码
set fileencodings=utf-8,gbk,gb2312 " 自动检测文件编码

" 缩进设置
set tabstop=4           " 设置 Tab 长度为 4
set shiftwidth=4        " 自动缩进使用 4 个空格
set expandtab           " 将 Tab 转为空格
set autoindent          " 自动对齐

" 搜索设置
set hlsearch            " 高亮搜索结果
set ignorecase          " 搜索时忽略大小写
set smartcase           " 智能大小写

" 语法高亮
syntax on               " 开启语法高亮

" 高级显示
set wrap                " 自动换行
set linebreak           " 只在单词边界换行

" 配色方案
colorscheme desert      " 设置主题(可换其他主题)

" 状态栏增强
set laststatus=2        " 显示状态栏

" 备份与历史
set backup              " 启用备份
set backupdir=~/.vim/backup// " 备份文件保存位置
set undofile            " 开启撤销历史
set undodir=~/.vim/undo// " 撤销历史保存位置

" 快捷键映射
nnoremap <C-s> :w<CR>   " Ctrl+S 保存文件
inoremap <C-s> <Esc>:w<CR>a

1.4、 安装插件

==插件管理器:==
为了方便安装和管理插件,推荐使用插件管理工具。

  • vim-plug(推荐)
  1. 安装 vim-plug

    Linux/macOS:

 curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Windows:

iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | `
    ni $HOME/vimfiles\autoload\plug.vim -Force
  1. 编辑 .vimrc,添加以下内容
 call plug#begin('~/.vim/plugged')

" 在这里添加插件
Plug 'preservim/nerdtree'       " 文件管理器
Plug 'itchyny/lightline.vim'    " 状态栏
Plug 'jiangmiao/auto-pairs'     " 自动补全括号
Plug 'sheerun/vim-polyglot'     " 多语言语法高亮支持
Plug 'tpope/vim-commentary'     " 快速注释工具

call plug#end()
  1. 在 Vim 中安装插件:
:PlugInstall

1.5、 高级配置与插件

5.1 文件树插件(NERDTree)
用于管理和浏览文件。
安装:在 .vimrc 添加

Plug 'preservim/nerdtree'

打开 NERDTree:

:NERDTreeToggle

5.2 状态栏插件(Lightline)
美化状态栏。
安装:在 .vimrc 添加:

Plug 'itchyny/lightline.vim'

5.3 自动补全(YouCompleteMe 或 Coc.nvim)
Coc.nvim 是一款轻量级 LSP 客户端,支持现代代码补全。
安装 Coc.nvim

Plug 'neoclide/coc.nvim', {
   'branch': 'release'}

5.4 快速注释(vim-commentary)
安装:在 .vimrc 添加:

Plug 'tpope/vim-commentary'

使用:

  • gcc:快速注释或取消注释当前行。
  • gc{motion}:注释指定文本范围。

以上配置可以帮助你快速入门 Vim,同时兼具一些现代功能。如果需要更深入的个性化定制,可以探索 Vim 社区的教程和插件。


2、Vim的特点

多模式编辑:

  • 正常模式(Normal Mode): 默认模式,用于导航和操作文本。
  • 插入模式(Insert Mode): 用于插入和编辑文本。
  • 可视模式(Visual Mode): 用于选择文本块。
  • 命令模式(Command Mode): 输入命令执行任务(如保存、退出、查找替换等)。
  • 其他模式: 包括替换模式(Replace Mode)和外部命令模式等。

高效的快捷键操作:

  • Vim 的操作几乎全部通过键盘完成,避免频繁使用鼠标。
  • 如 h, j, k, l 分别用于左、下、上、右移动光标。
  • 组合命令(如 d2w 表示删除两个单词)提高效率。

可定制性:

  • Vim 提供 .vimrc 配置文件,用于自定义快捷键、主题、插件等。
  • 用户可以通过插件扩展功能,如语法高亮、自动补全、版本控制等。

跨平台:

  • 支持各种操作系统,包括 Linux、macOS、Windows 和其他类 Unix 系统。

轻量且快速:

  • Vim 启动速度快,占用资源少,非常适合在资源受限的环境中使用。

3、Vim的优势

  • 高效:掌握 Vim 的快捷键后,可以快速编辑和处理文本。
  • 轻量级:适合在服务器、终端环境下使用。
  • 高度可扩展:拥有丰富的插件生态,支持现代开发需求(如 LSP、代码补全等)。
  • 学习成本高但回报高:初学者可能觉得复杂,但熟练之后会显著提升工作效率。

4、Vim的多模式编辑及常用指令

Vim键位图英文

Vim键位图中文


4.1、普通模式 (Normal Mode)

这是 Vim 启动后的默认模式。在这个模式下,主要用于浏览文件内容和执行各种编辑命令,如移动光标、删除、复制、粘贴等操作,是 Vim 操作的基础模式。

基本移动光标:

  • h:光标向左移动一个字符
  • j:光标向下移动一行
  • k:光标向上移动一行
  • l:光标向右移动一个字符。与h相对应。
  • gg:跳到文件开头。
  • G:跳到文件末尾。

    以单词为单位移动光标:

    • w:光标移动到下一个单词的开头。例如,如果光标在一个单词中间,按w会跳到下一个单词的首字符。
  • b:光标移动到当前单词或前一个单词的开头。如果光标已经在单词开头,会跳到前一个单词开头
  • e:光标移动到当前单词的结尾。

    行内快速跳转:

  • 0(数字零):光标移动到当前行的行首。
  • ^:光标移动到当前行的第一个非空白字符处。
  • $:光标移动到当前行的行尾。

    翻页操作:

  • Ctrl + f:向下翻一页(Page Down)。用于快速浏览文档后面的内容。
  • Ctrl + b:向上翻一页(Page Up)。用于查看文档前面的内容。

删除操作:

  • x:删除光标所在位置的字符。
  • dw:删除从光标位置开始到下一个单词开头的内容。
  • dd:删除当前行。

    复制和粘贴操作:

  • yy:复制当前行。可以通过p将复制的内容粘贴到光标所在位置的下一行。

  • p:将复制或删除的内容粘贴到光标所在位置的下一行
  • P:将复制或删除的内容粘贴到光标所在位置的上一行。

撤销和重做操作:

  • u:撤销上一步操作。例如,撤销刚刚的删除或修改。
  • Ctrl + r:重做被撤销的操作。

    跳转操作:

  • /pattern:向下搜索 pattern。
  • ?pattern:向上搜索 pattern。
  • n:重复上一次搜索(同方向)
  • N:重复上一次搜索(反方向)

  • 4.2、插入模式(Insert Mode)

    用于插入文本内容。当需要向文件中添加新的字符、单词或段落时,就会进入插入模式。通过不同的快捷键(如i、a、o等)可以在光标不同位置插入内容。比如,在编写文档时,大部分时间都处于插入模式来输入文字。

进入插入模式的方法:

  • i:在光标当前位置插入文本。例如,当光标在某个字符之前,按i后就可以在该字符之前开始输入新的内容。
  • a:在光标当前位置的下一个字符插入文本。
  • o:在当前行的下一行插入新的一行并进入插入模式。
  • I:在当前行的行首插入文本。
  • A:在当前行的行尾插入文本。
  • O:在当前行的上一行插入新的一行并进入插入模式。

    退出插入模式返回普通模式:

  • Esc键:按下Esc键可以从插入模式回到普通模式。

4.3、可视模式(Visual Mode)

可以对文本进行可视化的选择操作。包括字符可视模式(v)、行可视模式(V)和块可视模式(Ctrl + v)。在这个模式下,能够选择文本区域,然后进行复制、删除、缩进等操作。例如,在对一段代码进行注释或者取消注释时,可以使用块可视模式来选择需要操作的列。

进入可视模式:

  • v:进入字符可视模式。可以通过移动光标来选择字符,被选中的字符会高亮显示。
  • V:进入行可视模式。用于选择整行,移动光标时会以行为单位选择
  • Ctrl + v:进入块可视模式。可以用于对文本的列进行操作,例如对代码的缩进部分进行批量操作。
  • 可视模式下的操作:
  • y:复制选中的内容。在不同的可视模式下,会复制相应选中的字符、行或块。
  • d:删除选中的内容。
  • > 或<:将选中的内容进行缩进(>)或反缩进(<)操作,在块可视模式下可以很方便地对代码块进行缩进调整
  • = :自动格式化选中的代码

4.4、命令行模式(Command - Line Mode)

主要用于执行一些全局的命令,如保存文件(:w)、退出 Vim(:q)、查找替换(:s/old/new/g)等操作。通过在普通模式下按:进入该模式。在对文件进行管理和复杂操作时经常会用到这个模式,比如设置 Vim 的各种选项(如set命令)。

进入命令行模式:

  • ::在普通模式下按:进入命令行模式,用于执行各种命令。

常见命令:

文件操作:

  • :w 保存文件。例如,在编辑一个文件后,使用:w将修改保存到磁盘。
  • :q 退出 Vim。如果文件没有保存,会提示是否保存。
  • :wq 保存文件并退出。这是一个很常用的组合命令。
  • :q! 强制退出(不保存)
  • :e filename 打开文件
  • :r filename 读取文件内容并插入当前文件

    搜索和替换:

  • :/关键词 在文件中向前搜索指定的关键词。当按下回车键后,光标会跳转到第一个匹配的关键词处。
  • :?关键词 在文件中向后搜索指定的关键词。
  • :s/old/new 替换当前行的第一个匹配
  • :s/old/new/g 替换当前行的所有匹配
  • :%s/old/new/g 替换整个文件的所有匹配
  • :%s/old/new/gc 替换时逐一确认

    行号设置:

  • :set number 显示行号。可以方便地查看文件的行数和定位行。

  • :set nonumber 取消行号显示。

    其他命令:

  • :help:查看帮助。
  • :!command:执行外部命令(如 :!ls 显示文件列表)。

4.5、 替换模式(Replace Mode)

用于直接替换文本内容,按 R 进入。

  • R:进入替换模式。
  • 在替换模式下,输入的字符会覆盖已有文本,直到按 Esc 退出。

4.6、外部命令模式(Shell Mode)

通过命令模式运行外部 shell 命令。

  • :!command:执行外部命令。
  • 例如::!ls 显示当前目录内容。
  • :sh:进入 shell(终端),退出时输入 exit 返回 Vim。

4.7、Ex 模式

高级模式,用于执行复杂的批处理命令。按 Q 进入。
一般用户较少直接使用 Ex 模式,因为常用功能可在命令模式中完成。


4.8.、Select 模式

类似于可视模式,但按字符选择。很少单独使用。

在这里插入图片描述


5、Vim小结

以下表格展示了 Vim 各模式之间的切换方法:
| 当前模式 | 目标模式 | 转换方式 |
|-----------------|--------------------|-----------------------------|
| 正常模式 | 插入模式 | 按 i(光标前插入)、a(光标后插入)、o(新行) |
| 正常模式 | 可视模式 | 按 v(字符选择)、V(行选择)、Ctrl+v(块选择) |
| 正常模式 | 替换模式 | 按 R |
| 正常模式 | 命令模式 | 按 : |
| 正常模式 | Ex 模式 | 按 Q |
| 正常模式 | 外部命令模式 | 按 :!command |
| 插入模式 | 正常模式 | 按 Esc |
| 插入模式 | 命令模式 | 按 Esc 后再按 : |
| 可视模式 | 正常模式 | 按 EscCtrl+[ |
| 替换模式 | 正常模式 | 按 Esc |
| 命令模式 | 正常模式 | 按 Esc 或直接执行完命令 |
| Ex 模式 | 正常模式 | 输入 visual 或按 Ctrl+c |

表格:Vim 模式切换关系
以下是各模式及其特点和切换命令的完整表格:

模式名称 特点 进入方式 退出方式
正常模式 默认模式,用于导航和文本操作 Vim 启动时直接进入 i/a/o 进入插入模式
插入模式 插入文本 i, a, o Esc
可视模式 选择文本块,执行操作如删除、复制等 v, V, 或 Ctrl+v Esc
命令模式 用于执行保存、退出、搜索替换等命令 : Esc 或执行命令后返回
替换模式 替换文本内容 R Esc
外部命令模式 运行外部命令 :!command 命令执行完后返回正常模式
选择模式 选择文本(类似可视模式,但按字符) 暂无直接进入方式(自动触发) Esc
Ex 模式 用于复杂命令批处理,较少使用 Q 输入 visualCtrl+c

扩展阅读:
VIm英文文档
Vim中文文档

本文参考文档:
Vim中文文档
简明 VIM 练级攻略
第 4 章 Vim 编辑器与 Shell 命令脚本

无论是初学者还是专业开发者,Vim 都值得花时间学习和精通,因为它不仅是一个工具,更是一种高效的工作哲学。

==写在最后==

如果你觉得这篇关于 Vim 的总结对你有所帮助,请为我的博客 点赞👍收藏⭐️ 评论💬或 分享🔗 支持一下!你的每一个支持都是我继续创作的动力✨!🙏
如果你有任何问题或想法,也欢迎 留言💬 交流,一起进步📚!❤️ 感谢你的阅读和支持🌟!🎉
祝各位大佬吃得饱🍖,睡得好🛌,日有所得📈,逐梦扬帆⛵!

感谢你们的支持

相关文章
|
10月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
126 5
|
10月前
|
Linux 开发工具
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
|
Linux 开发工具 开发者
掌握文本编辑的艺术:深入了解Linux中的Vim编辑器
在Linux系统中,文本编辑是一项常见的任务。为了满足不同层次的用户需求,诞生了许多文本编辑器,其中Vim作为一个强大的编辑器,广受开发者和系统管理员的喜爱。本文将深入介绍Vim的基本概念、特点以及如何在Linux系统中使用它进行高效的文本编辑。
157 0
|
开发工具
文本编辑工具vim
文本编辑工具vim
100 0
文本编辑工具vim
|
人工智能 数据可视化 Unix
【Linux】指令入门之文本编辑工具Vim(2)(七)
Vim 是一个高度可配置的文本编辑器,旨在让创建和更改任何类型的文本变得非常高效。Vim 非常稳定,开发迭代版本贴别快。其特点有以下几个:持久的多级撤消树、广泛的插件系统、支持数百种编程语言和文件格式、强大的搜索和替换、 与许多工具集成。
【Linux】指令入门之文本编辑工具Vim(2)(七)
|
弹性计算 Linux 开发工具
【Linux】指令入门之文本编辑工具Vim(五)
Vim 非常稳定,开发迭代版本贴别快。其特点有以下几个:持久的多级撤消树、广泛的插件系统、支持数百种编程语言和文件格式、强大的搜索和替换、与许多工具集成
【Linux】指令入门之文本编辑工具Vim(五)
|
数据可视化 Unix Linux
Linux 文本编辑工具vim
Linux 文本编辑工具vim
163 0
|
弹性计算 Linux 开发工具
vim文本编辑工具
Vim 是一个基于文本界面的编辑工具,使用简单且功能强大。更重要的是,Vim 是所有 Linux 发行版本默认的文本编辑器。 很多人习惯将 Vim 称为 Vi,其实 Vim 是 Vi 的增强版(在 Vi 的基础上增加了正则表达式的查找、多窗口的编辑等功能),使用 Vim 进行程序开发会更加方便。
236 0
|
运维 安全 NoSQL
centos 网站漏洞修复之vim文本编辑BUG分析与修复方案
linux系统一直以来都是比较安全的,不管是系统内核还是一些第三方软件都没有太大的漏洞,包括前几年爆出的redis漏洞,没有太多漏洞,然后最近linux频频爆出高危的漏洞,使用vim文本编辑器很多年了,得知被爆出远程代码执行漏洞,有点不可思议,全国大多数的linux服务器都使用的是vim,包括centos系统,redhat,关于该漏洞的详情以及修复方案,我们SINE安全来详细的跟大家介绍一下:
211 0
centos 网站漏洞修复之vim文本编辑BUG分析与修复方案
下一篇
oss创建bucket