vim 使用指南

文章目录
  1. vim 简介
  2. vim 学习路径
  3. vim 快捷键
    1. 基本生存下来
    2. 基本编辑器功能
    3. 进阶
  4. vim 常用操作
    1. 插入命令
    2. 定位命令
    3. 删除命令
    4. 复制和剪切命令
    5. 替换和取消命令
    6. 搜索和搜索替换命令
    7. 保存和退出命令
    8. 总结
  5. vim 使用技巧

vim 简介

vim 是一个功能强大的全屏幕文本编辑器, 是 Linux/UNIX 上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件。

vim 没有菜单,只有命令。

vim 学习路径

1、idea/vscode 插件,找个 vim cheat sheet 打印下来。学会插入、换行、保存、替换之类的常见操作;

2、更复杂的操作,比如数千、录制宏之类的,基本脱离鼠标

3、spacevim / lunarvim 这种集成好各种插件的 “IDE”,替代 vscode ,偶尔翻《vim 使用指南》或者搜索寻找提高效率的技巧;

4、添加修改插件,对 lunarvim 进行修改;

5、从零折腾自己的 vim 环境。

1 和 2 我用了两年时间,主要是懒,没有继续深入的动力,所以进度就慢。现在在第 4 步加上一些定制,基本上也有第 5 步的能力,但是暂时不想继续折腾了。

现在回头看,我强烈建议缩短学习过程,1 和 2 的步骤用 1~2 周时间去刻意练习快速进入步骤 3 ,这个时候就可以完全抛弃 vscode 或者 idea 了

重点:强烈建议去刻意练习 vim ,鼠标丢一边,拔掉方向键。更早学会,就能更早的提高生产力。

vim 快捷键

基本生存下来

随便网上找一张快捷键图看两天就会了,应付日常使用就是一个记快捷键的过程

  • :w -> 保存
  • :q -> 退出
  • kjhl -> 上下左右
  • i -> 插入

基本编辑器功能

再找补一些其他基本功能:

  • u -> 撤销
  • Windows 的 Ctrl + R -> 撤销
  • Windows 的 Ctrl + C 变成了 Ctrl + Insert
  • Windows 的 Ctrl + V 变成了 Shift + Insert
  • v -> 选择
  • x -> 剪切
  • p -> 粘贴
  • y -> 复制
  • d -> 删除
  • / -> 搜索字符串
  • n -> 搜索结果的下一位置
  • N -> 搜索结果的上一位置
  • :s -> 替换字符串(比较高阶)

进阶

再开始就是 vim 的进阶了,一般编辑器不一定具备。

1、嫌 hjkl 移动太慢?试试下面的指令,让你迅捷如飞。0 、$、w 、b 、e 、W 、B 、E 、H 、M 、L 、f 、F 、t 、T

2、嫌 hjkl 翻页太 low ?试试这些指令,眼花缭绕。:linenum 、gg 、G 、Ctrl+D 、Ctrl+U 、Ctrl+E 、Ctrl+Y

3、嫌 i 插入不够灵活?试试这些指令,想插哪插哪。o 、O 、I 、a 、A

4、一些常用的快捷键。dd -> 删除当前行、D -> 删到行尾、cc -> 更改当前整行(删了整行重写)、C -> 删到行尾重写、yy -> 复制当前行

5、一些高阶魔法快捷键。va( -> 选中括号里面的内容,包含括号,a 换成 i 则不包含括号,除了小括号还可以用于其他配对的符号,像引号、花括号等等。<< -> 向左缩进ma -> 将光标位置设置为书签 a`a -> 到达书签 aqa -> 录制宏,宏存放到 a 中,再次按下 q 取消录制 @a -> 使用存放在 a 中的宏

vim 常用操作

插入命令

命令 作用
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行

定位命令

命令 作用
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第 n 行
:n 到第 n 行
$ 移至行尾
0 移至行首

删除命令

命令 作用
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到文件末尾内容
D 删除光标所在处到行尾内容
:n1,n2d 删除指定范围的行

复制和剪切命令

命令 作用
yy 复制当前行
nyy 复制当前行以下 n 行
dd 剪切当前行
ndd 剪切当前行以下n行
p、P 粘贴在当前光标所在行下或行上

替换和取消命令

命令 作用
r 取代光标所在处字符

|R |从光标所在处开始替换字符,按 Esc 结束|
|u |取消上一步操作|

搜索和搜索替换命令

命令 作用
/String 搜索指定字符串
:set ic 搜索时忽略大小写
n 搜索指定字符串的下一个出现位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串

解析:n1 起始行,n2终止行 s/要替换的字符串/替换的新的字符串/g

将 /g 改为 /c :询问确认

保存和退出命令

命令 作用
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改并退出
:q! 不保存修改退出
:wq! 强制保存修改并退出(文件所有者及root可使用)

总结

vim 使用技巧

导入文件内容: :r 文件路径,如 :r /etc/issue

在 vim 中执行命令::!命令

查看命令路径:!which ls

导入命令执行结果: :r !命令

定义快捷键::map 快捷键 触发命令

范例:: map ^P #,(^p:ctrl + v + p)、: map ^B 0x

连续行注释::n1,n2s/^/#/g:n1,n2s/^#//g:n1,n2s/^/\/\//g

tips: \ 转义字符

替换::ab mymail samlee@lampbrother.net [输入mymail会自动替换成后面的内容]

tips:定义的快捷键或者 ab 的内容重启后会消失。

保存在:文件 .vimrc 中

root 用户 -> /root/.vimrc

普通用户 -> /home/username/.vimrc