精通Vim核心操作

精通 Vim 核心操作

一、 Vim的三种模式解析

1
2
3
Normal Mode   → 命令模式(按Esc进入)
Insert Mode → 编辑模式(i/I/a/A/o/O进入)
Visual Mode → 可视模式(v/V/Ctrl+v进入)

成功的关键:自然转换模式

图片


二、 导航命令

1、基础移动

1
2
3
4
5
h/j/k/l                ← 左下上右移动(脱离方向键!)
0/$ → 行首/行尾
gg/G → 文件首/文件尾
20G/:20 → 跳转第20
Ctrl+u/d → 上/下翻半页

实例演示

  1. 打开文件 vim cat命令.md

    图片

  2. 输入 :25 直接跳转25行

  3. gg 返回文件开头

    图片

2、精准定位

1
2
3
4
w/W          → 下个单词开头(标点分隔/非标点分隔)
e/E → 单词结尾
f{char} → 行内跳转到指定字符,{char}这个是行内需要跳转到的字符
* → 查找当前光标单词

实例:在 const user = {id:1, name:"Tom"}; 中:

  • f{ 跳转到 {
  • w 三次跳到 name

三、 编辑命令

1、删除操作

1
2
3
4
5
x            → 删除当前字符
dw → 删除单词
d$ / D → 删至行尾
dd → 删除整行
5dd → 删除5

实例

1
2
3
# 原始行:print("Hello World!") 
# 光标在W上 → d w →
# 结果:print("Hello !")

图片

2、插入操作

1
2
3
4
i            → 光标前插入
a → 光标后插入
o / O → 下行/上行新建插入
s → 删除字符并插入

实例

  1. const = 5= 后按 i
  2. 输入 countconst count = 5

四、 复制粘贴与撤销

1、复制粘贴

1
2
3
4
yy           → 复制当前行
yw → 复制单词
p / P → 粘贴到后/前
"a yy → 复制到a寄存器

实例

  1. 复制函数:将光标移到函数行 yy
  2. 移动到底部: G
  3. 粘贴: p

2、撤销重做(很有效的操作)

1
2
3
u            → 撤销操作
Ctrl+r → 重做
. → 重复上次编辑

技巧dd后按p=剪切粘贴(移动行)


五、 查找替换

1、查找操作

1
2
3
4
5
/pattern                → 向前搜索,例:/cat
?pattern → 向后搜索,例:?cat
n / N → 下一个/上一个
:%s/old/new/g → 全局替换,例::%s/cat/dog/g
:%s/old/new/gc → 全局替换,带确认,例::%s/cat/dog/gc

实例

1
2
3
4
5
6
7
原文:my cat is older than hers;
// 向后搜索
/cat
// 向前搜索
?cat
// 将文件中所有"cat"替换为"dog"
:%s/cat/dog/g

2、高级替换

1
2
:%s/\<old\>/new/g → 精确匹配单词替换
:10,20s/old/new/g → 10-20行替换

实例

1
2
3
4
5
原文:mycat is older than hers, and navicat is not a cat;
// 替换完整单词cat,不包含部分单词是cat的,如navicat不会被替换
:%s/\<cat\>/dog/g
// 限定范围替换
:10,20s/cat/dog/g

六、 可视模式:批量操作神器

三种可视模式

1
2
3
v            → 字符选择
V → 行选择
Ctrl+v → 块选择

图片

图片

图片

**
**

实例(列编辑)

  1. 在多行注释前按 Ctrl+v
  2. 选择多列: j``j
  3. 输入 I# → 添加注释
  4. Esc 完成批量注释

七、 文件操作与保存

1
2
3
4
5
6
:w                 → 保存
:w filename → 另存为
:q / :q! → 退出/强制退出
:wq /:wq! → 保存退出/强制保存退出
:sp/vsp → 水平/垂直分屏
:e ~/.vimrc → 编辑配置文件

实例:分屏操作,搞个文件对比就比较容易了

1
2
3
4
:vsp cat命令.md
Ctrl+w+l # 右移窗口
:vsp find命令.md
:set scrollbind # 设置同步滚动

图片

图片


八、 终极配置:增强你的Vim

~/.vimrc 中加入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
" 开启行号
set number

" 语法高亮
syntax on

" 4空格缩进
set tabstop=4
set shiftwidth=4
set expandtab

" 实时搜索高亮
set hlsearch
set incsearch

图片


九、 组合技

  1. ci" → 快速修改引号内容(Change Inside)
  2. dtx → 删除到x字符前(Delete Till)
  3. gUiw → 当前单词转大写
  4. vip → 选择整个段落
  5. :!python % → 直接执行当前脚本