Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • shell

  • tool

    • mac 百问记录
    • mac tool
    • tmux
    • c tool
    • platform
    • VisiData 终极生存指南(vd)
    • dev tool
    • java tool
    • IDEA
    • vscode
    • Docker 使用指南
    • unbuntuOnWindows
    • oh-my-zsh
    • github
    • lldb
    • ripgrep 高性能文本搜索工具使用指南
    • appium
    • mvn
    • ffmpeg
    • gradle
    • git 使用指南
    • jenv
    • php-fpm
    • raycast
    • Vim 编辑器入门指南
      • 📖 快速开始
        • 什么是 Vim?
        • 学习路径
        • vimtutor - 交互式教程
      • 🎯 Vim 模式
      • 1. 普通模式(Normal Mode)
        • 1.1 光标移动
        • 1.2 删除操作
        • 1.3 复制粘贴
        • 1.4 其他操作
      • 2. 插入模式(Insert Mode)
      • 3. 可视模式(Visual Mode)
      • 4. 命令行模式(Command Mode)
        • 4.1 帮助
        • 4.2 文件操作
        • 4.3 搜索
        • 4.4 替换
        • 4.5 退出/关闭帮助
        • 4.5 其他命令
        • 4.6 粘贴模式
        • 4.7 执行外部命令
      • 5. 多文件编辑
        • 5.1 分割窗口
        • 5.2 标签页
        • 5.3 缓冲区
      • 6. 高级搜索(vimgrep)
        • 6.1 基本用法
        • 6.2 Quickfix 操作
        • 6.3 vimgrepadd
        • 6.4 正则表达式技巧
      • 7. 插件管理
        • 7.1 vim-plug(推荐)
        • 7.2 推荐插件
      • 8. 配置文件(.vimrc)
      • 9. 实用技巧
        • 9.1 复制问题
        • 9.2 从标准输入读取
        • 9.3 快速帮助
      • 10. 常用场景速查
        • 场景 1:快速编辑文件
        • 场景 2:批量替换
        • 场景 3:多文件搜索
        • 场景 4:对比文件
        • 场景 5:批量编辑
      • 11. 生态工具
        • 11.1 vimdiff
        • 11.2 vimgrep
      • 12. Vim 寄存器 (Registers) 深度指南
        • 1. 基础操作逻辑
        • 2. 常用寄存器分类
        • 3. 核心场景:对接系统剪贴板
        • 4. 自动化配置 (进阶)
        • 5. 管理与查看
      • 📚 学习资源
        • 官方文档
        • 教程资源
        • 插件资源
      • 💡 学习建议
      • 🎯 快捷键速查表
        • 必记快捷键
    • jadx
    • excalidraw 入门指南
    • whimsical 入门指南
    • mermaid 入门指南
  • 网络

  • compute_base

  • blog

  • growth

  • java

  • C&C++

  • ai

  • secure

  • cms

  • english

  • 生活

  • 金融学

  • more

  • other
  • tool
Jacky
2023-05-25
目录

Vim 编辑器入门指南

# Vim 编辑器入门指南

Vim 是 Linux 上使用最广泛的文本编辑器,具有程序编辑能力,可以主动以字体颜色辨别语法正确性,方便程序设计。

# 📖 快速开始

# 什么是 Vim?

Vim (Vi IMproved) 是一个高度可配置的文本编辑器,以高效的文本编辑著称。它是 Unix 系统中 Vi 编辑器的改进版本。

# 学习路径

  1. 新手入门:使用内置教程 vimtutor 学习基础操作(强烈推荐)
  2. 配置优化:通过 ~/.vimrc 文件自定义配置
  3. 插件扩展:使用插件管理器安装插件增强功能

# vimtutor - 交互式教程

vimtutor 是 Vim 内置的交互式教程,最适合新手学习。

使用方法:

# 直接在终端运行
vimtutor

# 或指定语言
vimtutor zh  # 中文教程
1
2
3
4
5

学习内容:

  • 移动光标
  • 插入和删除文本
  • 保存和退出文件
  • 搜索和替换
  • 基本编辑技巧

学习建议

vimtutor 教程需要 30-60 分钟完成,建议一次性完成并反复练习。

# 🎯 Vim 模式

Vim 有多种模式,这是它区别于其他编辑器的核心特性:

模式 说明 进入方式 退出方式
普通模式 默认模式,用于导航和执行命令 启动 Vim 时 -
插入模式 编辑文本 i, a, o 等 Esc
可视模式 选择文本 v, V, Ctrl+v Esc
命令行模式 执行命令 :, /, ? Enter 或 Esc

# 1. 普通模式(Normal Mode)

这是 Vim 的默认模式,用于导航和执行命令。

# 1.1 光标移动

基础移动:

命令 说明
h 左移一个字符
j 下移一行
k 上移一行
l 右移一个字符

行内移动:

命令 说明
0 移动到行首
^ 移动到本行第一个非空字符
$ 移动到行尾
g0 移动到屏幕行行首
g^ 移动到屏幕行第一个非空字符
g$ 移动到屏幕行行尾

单词移动:

命令 说明
w 移动到下一个单词开头
W 移动到下一个单词开头(忽略标点)
e 移动到下一个单词末尾
E 移动到下一个单词末尾(忽略标点)
b 移动到上一个单词开头
B 移动到上一个单词开头(忽略标点)

字符查找:

命令 说明
f{char} 移动到本行下一个 {char} 字符处
F{char} 移动到本行上一个 {char} 字符处
nf{char} 移动到本行第 n 个 {char} 字符处
; 重复上次 f/F 查找
, 反向重复上次 f/F 查找

行跳转:

命令 说明
gg 跳转到文件第一行
G 跳转到文件最后一行
{n}G 跳转到第 n 行
{n}gg 跳转到第 n 行
:n 跳转到第 n 行

屏幕移动:

命令 说明
H 跳转到屏幕顶部
M 跳转到屏幕中间
L 跳转到屏幕底部
zt 当前行移到屏幕顶部
zz 当前行移到屏幕中间
zb 当前行移到屏幕底部
Ctrl+f 向下翻页
Ctrl+b 向上翻页

其他移动:

命令 说明
% 匹配括号移动 (), {}, []
* 查找光标所在单词的下一个
# 查找光标所在单词的上一个
gj 移动到段落内下一行
gk 移动到段落内上一行
+ / Enter 移到下一行第一个非空字符
- 移到上一行第一个非空字符

# 1.2 删除操作

命令 说明
x 删除光标后一个字符
dw 删除一个单词
d{n}w 删除 n 个单词
dd 删除整行
{n}dd 删除 n 行
d$ 或者 D 删除到行尾
d0 删除到行首
dG 删除到文件末尾
dH 删除到屏幕顶部
df{char} 删除到下一个 {char} 字符, 包含. F 表示向前删除
dt{char} 删除到下一个 {char} 字符, 不包含, T 表示先前删除
diw 删除光标所在单词
di" 删除双引号内的内容(不删引号本身)
di' 删除单引号内的内容(不删引号本身)
di( 删除圆括号内的内容(不删括号本身)
di{ 删除花括号内的内容(不删括号本身)
:1,2d 删除第 1-2 行
:5,$d 删除第 5 行到文件末尾
:%d 删除文件所有内容

d 命令的组合规则

  • df vs dt:df{char} 删除到字符并包含该字符,dt{char} 删除到字符但不包含该字符(t = till)
  • di = delete inside:删除包裹内容,保留外层引号/括号。对应的 da = delete around,会连同引号/括号一起删除
  • 示例:光标在 "hello world" 的 h 上,di" 结果为 "",da" 则整个删除

# 1.3 复制粘贴

复制(yank):

命令 说明
yw 复制一个单词
yy 复制整行
y$ 复制到行尾
{n}yy 复制 n 行
:31,100y 复制第 31-100 行

粘贴(paste):

命令 说明
p 在光标后粘贴
P 在光标前粘贴

复制多行示例:

" 方法 1:使用行号
" 复制第 1-100 行
gg        " 跳到第一行
V         " 进入可视行模式
100G      " 选择到第 100 行
y         " 复制
p         " 粘贴

" 方法 2:使用命令
:1,100y   " 复制第 1-100 行到寄存器
1
2
3
4
5
6
7
8
9
10

# 1.4 其他操作

命令 说明
u 撤销
Ctrl+r 恢复撤销
. 重复上次操作
cw 删除单词并进入插入模式

# 2. 插入模式(Insert Mode)

从普通模式进入插入模式的方式:

命令 说明
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行尾插入
o 在下一行插入
O 在上一行插入
s 删除光标字符并插入
S 删除整行并插入

常用组合

  • i / a:最常用,分别在光标前/后插入
  • o / O:快速创建新行
  • A:快速跳到行尾插入

# 3. 可视模式(Visual Mode)

用于选择文本块:

命令 说明
v 字符可视模式
V 行可视模式
Ctrl+v 块可视模式

可视模式操作:

" 选择并操作
V         " 进入行可视模式
5j        " 向下选择 5 行
y         " 复制选中内容
d         " 删除选中内容
>         " 向右缩进
<         " 向左缩进
1
2
3
4
5
6
7

# 4. 命令行模式(Command Mode)

# 4.1 帮助

  • :help 或者 :h 进入命令行模式
  • :h quickref: 最基础的命令列表
  • 查特定的键
    • :h x: 查 x 键是干嘛的
  • 查组合键
    • CTRL 键用 c- 表示::h c-w (查看窗口切换相关的快捷键)。
    • ALT/Option 键用 m- 表示::h m-a
  • 查模式特定键
    • :h v_u: 可视模式下的快捷键
    • :h i_ctrl-w: 插入模式下的快捷键

# 4.2 文件操作

命令 说明
:w 保存
:w! 强制保存
:w {file} 另存为
:saveas {file} 另存为
:q 退出
:q! 强制退出(不保存)
:wq 保存并退出
:x 保存并退出
:qa! 退出所有文件(不保存)
:e {file} 打开文件
:e! 放弃修改,重新加载

# 4.3 搜索

基本搜索:

命令 说明
/{pattern} 向下搜索
?{pattern} 向上搜索
n 下一个匹配
N 上一个匹配
/\<word\> 精确匹配单词
* 搜索光标所在单词
# 反向搜索光标所在单词

搜索技巧:

" 统计匹配次数
:%s/\<word\>/&/gn

" 统计单词数
:%s/\a\+/&/gn

" 统计非空字符数
:%s/\S\+/&/gn

" 查找配对括号
%
1
2
3
4
5
6
7
8
9
10
11

# 4.4 替换

基本语法:

:[range]s/{pattern}/{replacement}/{flags}
1

常用替换:

命令 说明
:s/old/new/ 替换当前行第一个
:s/old/new/g 替换当前行所有
:%s/old/new/gc 替换所有(需确认)
:%s/old/new/ 替换每行第一个
:%s/old/new/g 替换所有
:%s/old/new/gi 替换所有(忽略大小写)
:#,#s/old/new/g 替换指定行范围
:.,+2s/foo/bar/g 当前行及接下来 2 行

实用示例:

" 删除行首空白
:%s/^\s*//g

" 删除行尾空白
:%s/\s\+$//g

" 删除空行
:g/^$/d

" 每行行尾添加分号
:%s/$/;/g
1
2
3
4
5
6
7
8
9
10
11

# 4.5 退出/关闭帮助

  • :q : 关闭当前窗口(最常用)。
  • :bd : 删除该文档缓存并关闭。
  • :only : 只保留当前窗口,关闭其他所有(包括报错窗口或多个帮助窗口)。

# 4.5 其他命令

显示设置:

命令 说明
:set nu 显示行号
:set nonu 隐藏行号
:set nu! 切换行号显示
:set ic 忽略大小写
:set noic 区分大小写
Ctrl+G 显示文件信息

# 4.6 粘贴模式

:set paste: Vim 会进入一个特殊的 “粘贴模式”。在这个模式下,Vim 会暂时禁用以下所有干扰项

  • 禁用 自动缩进 (autoindent)、智能缩进 (smartindent) 等。
  • 禁用 插入模式下的某些特殊快捷键和映射 (mappings)。
  • 禁用 自动换行等格式化功能。

# 4.7 执行外部命令

:!{command}         " 执行外部命令
:!ls                " 列出文件
:!python %          " 执行当前 Python 文件
1
2
3

# 5. 多文件编辑

# 5.1 分割窗口

命令 说明
:sp {file} 水平分割打开文件
:vsp {file} 垂直分割打开文件
Ctrl+w Ctrl+w 切换窗口
Ctrl+w h/j/k/l 切换到指定方向窗口
Ctrl+w = 窗口等宽等高
Ctrl+w + 增加窗口高度
Ctrl+w - 减少窗口高度
:q 关闭当前窗口

# 5.2 标签页

命令 说明
:tabe {file} 新标签页打开文件
:tabn 下一个标签页
:tabp 上一个标签页
:tabc 关闭当前标签页
gt 下一个标签页
gT 上一个标签页

# 5.3 缓冲区

命令 说明
:e {file} 打开文件到缓冲区
:bnext / :bn 下一个缓冲区
:bprev / :bp 上一个缓冲区
:bd 关闭当前缓冲区
:buffers / :ls 查看所有缓冲区

# 6. 高级搜索(vimgrep)

vimgrep 用于在多个文件中搜索,结果保存在 Quickfix 列表中。

# 6.1 基本用法

语法:

:vimgrep /{pattern}/ {files}
1

示例:

" 在当前文件搜索
:vimgrep /TODO/ %

" 在所有 .txt 文件中搜索
:vimgrep /error/ **/*.txt

" 在当前目录及子目录的所有 .py 文件中搜索
:vimgrep /function/ **/*.py
1
2
3
4
5
6
7
8

# 6.2 Quickfix 操作

命令 说明
:copen 打开 Quickfix 窗口
:cclose 关闭 Quickfix 窗口
:cn / :cnext 下一个匹配
:cp / :cprev 上一个匹配
:cc 跳到指定匹配
:cfilter {pattern} 过滤 Quickfix 列表

# 6.3 vimgrepadd

vimgrepadd 将搜索结果追加到 Quickfix 列表,而不是替换。

" 第一次搜索
:vimgrep /error/ *.log

" 追加搜索结果
:vimgrepadd /warning/ *.log

" 查看所有结果
:copen
1
2
3
4
5
6
7
8

对比:

命令 行为
vimgrep 替换 Quickfix 列表
vimgrepadd 追加到 Quickfix 列表

# 6.4 正则表达式技巧

" OR 搜索(注意 | 需要转义)
:vimgrep 'aaaa\|bbbb' %

" 复杂模式
:vimgrep '\[17474.*\(Report\.PMMReport\]\|PlayTimeHelper\]\)' *.log

" 搜索连续两行包含相同内容
:vimgrep '.*onReallyStart\n.*onReallyStart' *.log
1
2
3
4
5
6
7
8

# 7. 插件管理

# 7.1 vim-plug(推荐)

安装 vim-plug:

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

配置 ~/.vimrc:

" 插件列表开始
call plug#begin('~/.vim/plugged')

" 插件示例
Plug 'preservim/nerdtree'           " 文件树
Plug 'yssl/QFEnter.vim'             " Quickfix 增强
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'             " 模糊查找

" 插件列表结束
call plug#end()
1
2
3
4
5
6
7
8
9
10
11

插件管理命令:

命令 说明
:PlugInstall 安装插件
:PlugUpdate 更新插件
:PlugClean 清理未使用插件
:PlugStatus 查看插件状态

# 7.2 推荐插件

QFEnter - Quickfix 增强:

" 在 .vimrc 中添加
Plug 'yssl/QFEnter.vim'

" 运行安装
:PlugInstall

" 使用
:QFEnter           " 打开新 Quickfix 窗口
:QFEnter <number>  " 切换 Quickfix 窗口
1
2
3
4
5
6
7
8
9

# 8. 配置文件(.vimrc)

创建或编辑 ~/.vimrc 文件来自定义 Vim:

" 基础设置
set number              " 显示行号
set relativenumber      " 显示相对行号
set cursorline          " 高亮当前行
set showcmd             " 显示命令
set showmatch           " 显示括号匹配

" 缩进设置
set tabstop=4           " Tab 宽度
set shiftwidth=4        " 缩进宽度
set expandtab           " Tab 转空格
set autoindent          " 自动缩进
set smartindent         " 智能缩进

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

" 外观设置
syntax on               " 语法高亮
set background=dark     " 深色背景
colorscheme desert      " 配色方案

" 其他设置
set mouse=a             " 启用鼠标
set encoding=utf-8      " 编码
set nobackup            " 不创建备份文件
set noswapfile          " 不创建交换文件

" 快捷键映射
" 快速保存
nnoremap <C-s> :w<CR>

" 快速退出
nnoremap <C-q> :q<CR>

" 清除搜索高亮
nnoremap <Esc><Esc> :noh<CR>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

配置文件参考:vimrc configuration guide (opens new window)

# 9. 实用技巧

# 9.1 复制问题

问题:启用行号后,在可视模式复制可能包含空格。

解决方法:

" 方法 1:临时关闭行号
:set nu!        " 关闭行号
" 复制后再开启
:set nu!

" 方法 2:使用寄存器复制
" 选择文本后直接 y 复制到寄存器
" 然后 :e file 打开其他文件
" 使用 p 粘贴

" 方法 3:使用系统剪贴板
set clipboard=unnamedplus  " 在 .vimrc 中设置
1
2
3
4
5
6
7
8
9
10
11
12

# 9.2 从标准输入读取

# 通过管道将命令输出用 Vim 打开
command | vim -

# 示例
cat file.txt | vim -
ls -la | vim -
1
2
3
4
5
6

# 9.3 快速帮助

:help quickfix       " Quickfix 帮助
:help pattern        " 正则表达式帮助
:help usr_toc        " 用户手册目录
:h {keyword}         " 查询关键字帮助
1
2
3
4

# 10. 常用场景速查

# 场景 1:快速编辑文件

vim file.txt       " 打开文件
i                  " 进入插入模式
# 编辑内容
Esc                " 返回普通模式
:wq                " 保存并退出
1
2
3
4
5

# 场景 2:批量替换

vim file.txt
:%s/old/new/gc     " 全局替换(需确认)
# 按 y 确认,n 跳过,a 全部替换
:wq
1
2
3
4

# 场景 3:多文件搜索

vim
:vimgrep /TODO/ **/*.py    " 搜索所有 Python 文件
:copen                     " 打开结果窗口
# Enter 跳转到匹配位置
:cn                        " 下一个结果
1
2
3
4
5

# 场景 4:对比文件

# 使用 vimdiff
vimdiff file1.txt file2.txt
1
2

# 场景 5:批量编辑

vim *.txt          " 打开所有 txt 文件
:%s/old/new/g      " 替换当前文件
:wnext             " 保存并打开下一个
# 重复上述操作
1
2
3
4

# 11. 生态工具

# 11.1 vimdiff

  1. 基础移动与跳转
  • ]c : 跳到 下一个 差异点 (Next Change)
  • [c : 跳到 上一个 差异点 (Previous Change)
  1. 块级同步 (Normal 模式)
  • dp : Diff Put - 把当前窗口的内容“推”给另一个窗口
  • do : Diff Obtain - 从另一个窗口“拿”内容到当前窗口
  1. 局部同步 (Visual 模式) - 重点!

注意:在 V (Visual Line) 模式下,直接按 d 会触发删除。此时必须使用冒号命令:

  • :'<,'>diffput : 仅将选中的行 推 过去
  • :'<,'>diffget : 仅将选中的行 拉 过来 (等同于 :diffget)
  1. 折叠管理 (Folding)
  • zo : Open - 展开当前折叠
  • zc : Close - 关闭当前折叠
  • zr : Reduce - 展开全文所有折叠
  • zm : More - 关闭全文所有折叠
  1. 状态修复与排障
  • :diffupdate : 强制刷新。当手动编辑后高亮没及时跟上时使用。
  • :diffthis : 检查模式是否关闭。若某个窗口变白,进入该窗口输入此命令重新加入对比。
  • :set diff? : 检查当前窗口是否处于 diff 模式(返回 diff 或 nodiff)。
  • :set wrap / :set nowrap : 开启或关闭折行(对比长代码时很有用)。
  1. 多文件保存与退出
  • :wa : 保存所有窗口 (Write All)
  • :qa : 退出所有窗口 (Quit All)
  • :wqa : 保存并退出所有窗口 (Write & Quit All)

💡 进阶:配置优化 (建议加入 ~/.vimrc)

如果觉得每次输入 :diffput 太麻烦,可以在配置文件中加入映射,实现 Visual 模式下按 g 拉取,按 p 推送:

" 在 Visual 模式下,按 g 执行拉取,按 p 执行推送
vmap g :diffget<CR>
vmap p :diffput<CR>
1
2
3

# 11.2 vimgrep

# 12. Vim 寄存器 (Registers) 深度指南

Vim 的寄存器可以看作是多个剪贴板的集合。当你执行删除(d)、复制(y)或粘贴(p)时,Vim 其实是在操作这些特定的内存空间。


# 1. 基础操作逻辑

  • 指定寄存器:在执行 y 或 p 之前,按 " (双引号) 加上 寄存器名。
  • 命令格式:"{register}{action}
    • 示例:"*y (复制到系统剪贴板)
    • 示例:"ap (粘贴寄存器 a 中的内容)

# 2. 常用寄存器分类

寄存器类型 名称 描述
无名寄存器 "" 默认寄存器。任何 d, c, s, x, y 的内容都会存入此处。
系统剪贴板 "* 或 "+ 与操作系统剪贴板交互(macOS/Windows 通常用 *)。
有名寄存器 a - z 用户自定义存储。例如 "ay 会永久保存内容直到你覆盖它。
黑洞寄存器 "_ 彻底删除。执行 "_dd 内容不会覆盖任何寄存器,直接消失。
搜索寄存器 "/ 存储上一次搜索的关键词。
表达式寄存器 "= 在插入模式按 Ctrl-R = 可以进行数学计算并插入结果。

# 3. 核心场景:对接系统剪贴板

为了解决 Vim 与 macOS 之间“数据不互通”的痛点,主要依赖以下两个寄存器:

  • * 寄存器:在 macOS/Linux 中通常指向 Primary Selection(即鼠标选中的内容)。
  • + 寄存器:指向系统的 Clipboard(即 Cmd+C 复制的内容)。

高频操作:

  • 复制到系统:进入 Visual 模式选中文本,依次按下 "*y。
  • 从系统粘贴:在 Normal 模式依次按下 "*p。

# 4. 自动化配置 (进阶)

如果你不想每次都输入 "*,可以在 ~/.vimrc 中开启自动同步:

" 将默认寄存器与系统剪贴板关联
set clipboard=unnamed

" 如果上面的不行,试试这个(针对特定 Linux/Unix 环境)
" set clipboard=unnamedplus
1
2
3
4
5

配置后的变化: 所有的 y 操作都会直接进入系统剪贴板,所有的 p 都会读取系统剪贴板。

方案2: 如果你不想改变 Vim 的默认行为,可以映射一个更爽的快捷键。在 ~/.vimrc 加入:

# Visual 模式下,按 F 把选中内容传给系统剪贴板
vmap F "*y
1
2

# 5. 管理与查看

如果你忘记了寄存器里存了什么,可以使用以下命令:

  • :reg:列出所有寄存器及其当前内容。
  • :reg a:只查看寄存器 a 的内容。
  • Ctrl + r + {name}:在 插入模式 (Insert Mode) 下,直接把某个寄存器的内容打出来。

# 📚 学习资源

# 官方文档

  • Vim 官方网站 (opens new window)
  • Vim 帮助文档 (opens new window)
  • Vim FAQ (opens new window)

# 教程资源

  • Vim Search in File (opens new window)
  • 知乎 - 精通 Vim (opens new window)
  • Vim Pattern 文档 (opens new window)

# 插件资源

  • vim-plug 官方 (opens new window)
  • vim-plug 中文教程 (opens new window)
  • Vim 插件分享 (opens new window)
  • Quickfix 和 Location List (opens new window)

# 💡 学习建议

  1. 从 vimtutor 开始:这是最好的入门教程
  2. 每天练习:Vim 需要肌肉记忆,每天使用才能熟练
  3. 逐步学习:不要一次学太多,先掌握基础移动和编辑
  4. 使用插件:合适的插件能大幅提升效率
  5. 自定义配置:根据个人习惯配置 .vimrc
  6. 查阅帮助:遇到问题使用 :help 命令

# 🎯 快捷键速查表

# 必记快捷键

功能 命令
进入插入模式 i
退出插入模式 Esc
保存 :w
退出 :q
保存并退出 :wq 或 :x
强制退出 :q!
撤销 u
重做 Ctrl+r
复制行 yy
粘贴 p
删除行 dd
搜索 /pattern
替换 :%s/old/new/g

开始你的 Vim 之旅吧!🚀

#vim#shell#tutorial#tool
上次更新: 2026/04/24, 17:58:52
raycast
jadx

← raycast jadx→

最近更新
01
Android 端口转发(Forward & Reverse) 的实操与避坑全指南
04-29
02
VisiData 终极生存指南(vd)
04-27
03
macOS 定时任务实现:Git 仓库状态自动同步方案
04-26
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式