
1.Linux编辑器-vim使⽤
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,⽽且还有⼀些新的特性在⾥⾯。例如语法加亮,可视化操作不仅可以在终端运⾏,也可以运⾏于x window、 mac os、 windows。
2.vim的基本概念
vim的三种模式(其实有好多模式,前期掌握这3种即可),分别是命令模式(command
mode)、插⼊模式(Insert mode)和底⾏模式(last line mode)
• 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,或者到 last line mode
• 插⼊模式(Insert mode)
只有在Insert mode下,才可以做⽂字输⼊,按「ESC」键可回到命令⾏模式。该模式是我们后⾯⽤的最频繁的编辑模式。
• 末⾏模式(last line mode)
⽂件保存或退出,也可以进⾏⽂件替换,找字符串,列出⾏号等操作。
在命令模式下,*shift+:* 即可进⼊该模式。要查看你的所有模式:打开 vim,底⾏模式直接输⼊ :help vim-modes
实际vim总共有12种模式,六种基础模式和六种新增模式,以为就是six BASIC modes和six ADDITIONAL modes.

3.vim的基本操作
模式间的操作
进入vim
$ vim test.c
不过有⼀点要特别注意,就是你进⼊vim之后,是处于[正常模式],你要切换到[插⼊模式]才能够输⼊⽂字。
正常模式\]切换⾄\[插⼊模式
• 输⼊a
• 输⼊i
• 输⼊o
• [插⼊模式]切换⾄[正常模式]
• ⽬前处于[插⼊模式],就只能⼀直输⼊⽂字,如果发现输错了字,想⽤光标键往回移动,将该字删除,可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然,也可以直接删除。
• [正常模式]切换⾄[末⾏模式]
• 「shift + ;」, 其实就是输⼊「:」
• 退出vim及保存⽂件,在[正常模式]下,按⼀下「:」冒号键进⼊「Last line mode」
• : w (保存当前⽂件)
• : wq (输⼊「wq」,存盘并退出vim)
• : q! (输⼊q!,不存盘强制退出vim)
4.命令模式的命令
进入 插⼊模式:
• 按「i」切换进⼊插⼊模式「insert mode」,按"i"进⼊插⼊模式后是从光标当前位置开始输⼊⽂件;
• 按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;
• 按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。
移动光标:
上下:
• 按[gg]:进⼊到⽂本开始
• 按「G」:移动到⽂章的最后
• 按「n+G」:移动到第n行
左右:
• 按「^」:移动到光标所在⾏的"⾏⾸"
• 按「 $ 」:移动到光标所在⾏的"⾏尾"
• vim可以直接⽤键盘上的光标来上下左右移动,但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移⼀格
• 按「w」:光标跳到下个字的开头
其他:
• 按「e」:光标跳到下个字的字尾
• 按「b」:光标回到上个字的开头
• 按「#l」:光标移到该⾏的第#个位置,如:5l,56l
• 按「ctrl」+「b」:屏幕往"后"移动⼀⻚
• 按「ctrl」+「f」:屏幕往"前"移动⼀⻚
• 按「ctrl」+「u」:屏幕往"后"移动半⻚
• 按「ctrl」+「d」:屏幕往"前"移动半⻚
删除⽂字:
• 「x」:每按⼀次,删除光标所在位置的⼀个字符
• 「#x」:例如,「6x」表⽰删除光标所在位置的"后⾯(包含⾃⼰在内)"6个字符
• 「X」:⼤写的X,每按⼀次,删除光标所在位置的"前⾯"⼀个字符
• 「#X」:例如,「20X」表⽰删除光标所在位置的"前⾯"20个字符
• 「dd」:删除光标所在⾏
• 「#dd」:从光标所在⾏开始删除#⾏
复制:
• 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
• 「#yw」:复制#个字到缓冲区
• 「yy」:复制光标所在⾏到缓冲区。
• 「#yy」:例如,「6yy」表⽰拷⻉从光标所在的该⾏"往下数"6⾏⽂字。
• 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须
与"p"配合才能完成复制与粘贴功能。
粘贴:
• 「yy」:复制光标所在⾏到缓冲区。
• 「dd」:删除光标所在⾏,所在⾏到缓冲区。
• 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须
与"p"配合才能完成复制与粘贴功能。
替换:
• 「r」:替换光标所在处的字符。
• 「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。
撤销上⼀次操作:
• 「u」:如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个操作。按多次"u"可以执⾏多次回复。
• 「ctrl + r」: 撤销的恢复
更改
• 「cw」:更改光标所在处的字,输入一个新的字,esc退出。
• 「c#w」:例如,「c3w」表⽰更改3个字
切换大小写:
shift+`==~:切换大小写
查找:
shift+1==#:光标所在单词的下一个位置。
5.vim末⾏模式命令集
在使⽤末⾏模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进⼊末⾏模式。
列出⾏号
• 「set nu」: 输⼊「set nu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。
跳到⽂件中的某⼀⾏
• 「#」:「#」号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回⻋键就会跳到该⾏了,如输⼊数字15,再回⻋,就会跳到⽂章的第15⾏。
查找字符
• 「/关键字」: 先按「/」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往后寻找到您要的关键字为⽌。
• 「?关键字」:先按「?」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往前寻找到您要的关键字为⽌。
• 问题:∕ 和 ?查找有和区别?操作实验⼀下

保存⽂件
• 「w」: 在冒号输⼊字⺟「w」就可以将⽂件保存起来
离开vim
• 「q」:按「q」就是退出,如果⽆法离开vim,可以在「q」后跟⼀个「!」强制离开vim。
• 「wq」:⼀般建议离开时,搭配「w」⼀起使⽤,这样在退出的时候还可以保存⽂件。
批量替换:
%s /scr/dst/g
分屏:
vs 文件名:分屏光标在哪边就是对哪边操作 、
ctrl+ww :切换光标所在文件
6.批量注释操作

这里我们需要用到新的模式,视图模式了解即可
批量化注释:
1.ctrl+v :进入视图模式
2.hjkl :移动光标
3.shift+i :进入插入模式。
4.输入//
5.ESC返回
批量化去注释:
1.ctrl+v :进入视图模式
2.hjkl :移动光标
3.d :删除。
hjkl选中区域就是我们视图模式操作的区域。
7.vim的配置
以下是一份专为 C/C++ 开发优化的 Vim 配置流程,涵盖代码补全、调试、格式化、项目管理等关键功能,适合在终端高效开发。
1. 安装 Vim(确保版本 ≥ 8.2)
# Ubuntu/Debian
sudo apt update && sudo apt install vim-gtk # 支持剪贴板
# macOS
brew install vim
# Windows (通过 Chocolatey)
choco install vim
2. 创建 ~/.vimrc
并配置基础选项
" === 基础设置 ===
set nocompatible " 禁用 Vi 兼容模式
filetype plugin indent on " 启用文件类型检测
syntax enable " 语法高亮
set number " 显示行号
set relativenumber " 相对行号(方便跳转)
set tabstop=4 " Tab 显示为 4 空格
set shiftwidth=4 " 自动缩进 4 空格
set expandtab " Tab 转空格
set smartindent " 智能缩进
set cursorline " 高亮当前行
set mouse=a " 启用鼠标支持(可选)
" === 搜索优化 ===
set incsearch " 实时搜索
set ignorecase " 忽略大小写
set smartcase " 包含大写时区分大小写
" === 快捷键映射 ===
let mapleader = " " " 设置 Leader 键为空格
nnoremap <leader>w :w<CR> " 快速保存
nnoremap <leader>q :q<CR> " 快速退出
inoremap jj <Esc> " 用 jj 退出插入模式
3. 安装插件管理器 Vim-Plug
# Linux/macOS
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
ni "$env:USERPROFILE/vimfiles/autoload/plug.vim" -Force
4. 配置 C/C++ 专用插件(添加到 ~/.vimrc
)
call plug#begin('~/.vim/plugged')
" === 主题 & UI ===
Plug 'gruvbox-community/gruvbox' " 经典主题
Plug 'vim-airline/vim-airline' " 状态栏美化
" === 代码补全 & LSP ===
Plug 'neoclide/coc.nvim', {'branch': 'release'} " 强大的 LSP 支持
" === 代码导航 & 分析 ===
Plug 'preservim/tagbar' " 显示代码结构(依赖 ctags)
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " 模糊搜索
Plug 'junegunn/fzf.vim'
" === C/C++ 增强 ===
Plug 'rhysd/vim-clang-format' " 自动格式化(需安装 clang-format)
Plug 'bfrg/vim-cpp-modern' " C++ 语法高亮增强
" === 调试 ===
Plug 'puremourning/vimspector' " 图形化调试(类似 VS Code)
" === 项目管理 ===
Plug 'preservim/nerdtree' " 文件树
call plug#end()
" === 主题设置 ===
colorscheme gruvbox
set background=dark
5. 安装插件
-
保存
~/.vimrc
后,打开 Vim。 -
运行
:PlugInstall
安装所有插件。
6. 配置 LSP(C/C++ 语言服务器)
安装依赖
# 安装 clangd(C/C++ LSP 后端)
# Ubuntu/Debian
sudo apt install clangd-12
# macOS
brew install llvm
配置 coc.nvim
在 Vim 中运行 :CocConfig
,添加以下内容(JSON 格式):
{
"languageserver": {
"clangd": {
"command": "clangd",
"rootPatterns": ["compile_commands.json", ".git"],
"filetypes": ["c", "cpp", "objc", "objcpp"]
}
}
}
常用 Coc 命令
-
:CocList diagnostics
查看错误 -
:CocCommand clangd.switchSourceHeader
切换 .h/.cpp -
Ctrl+Space
触发补全
7. 配置 Clang-Format(代码格式化)
-
安装
clang-format
:sudo apt install clang-format # Ubuntu/Debian brew install clang-format # macOS
-
在
~/.vimrc
中添加快捷键:" 按 \= 格式化当前行或选区 nmap <leader>= :ClangFormat<CR> vmap <leader>= :ClangFormat<CR>
8. 配置调试(Vimspector)
-
安装调试器(如
gdb
):sudo apt install gdb # Ubuntu/Debian brew install gdb # macOS
-
在项目根目录创建
.vimspector.json
:{ "configurations": { "C++ Launch": { "adapter": "vscode-cpptools", "configuration": { "request": "launch", "program": "${workspaceRoot}/a.out", " 修改为你的可执行文件路径 "args": [], "stopAtEntry": true } } } }
-
快捷键:
-
F5
开始调试 -
F9
断点 -
F10
单步跳过
-
9. 常用快捷键总结
快捷键 | 功能 |
---|---|
<Leader> + n |
打开/关闭文件树 (NERDTree) |
<Leader> + t |
打开 Tagbar(代码结构) |
<Leader> + f |
模糊搜索文件 (FZF) |
Ctrl + ] |
跳转到定义(LSP) |
Ctrl + o |
返回上一个位置 |
gd |
查看定义(LSP) |
10. 最终效果
-
代码补全 :
coc.nvim
+clangd
-
调试 :
vimspector
图形化界面 -
格式化 :
clang-format
一键美化 -
导航 :
fzf
+tagbar
快速跳转
附:快速恢复配置(备份与共享)
# 备份配置
cp ~/.vimrc ~/vimrc_backup
# 在新机器恢复
curl -fLo ~/.vimrc https://your-config-url/vimrc
vim +PlugInstall +qall
这样配置后,你的 Vim 将成为一个强大的 C/C++ IDE! 🚀