Vim作者Bram于2023年8月3日因病情恶化去世,在此追悼Bram,并分享我多年以来学习Vim所记录的笔记

vim一共有4个模式:

正常模式 (Normal-mode) 
插入模式 (Insert-mode)
命令模式 (Command-mode)
可视模式 (Visual-mode)

正常模式:
启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。
插入模式:
在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
命令模式:
在正常模式中按下:键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
可视模式:
在正常模式中按下v, V, +v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

vim普通模式下的基本操作:
剪切当前行dd
复制当前行yy
粘贴p
撤销u,撤销一行U
恢复撤销内容快捷键Ctrl+R

在正常模式下输入:进入命令模式,在之后输入vim或插件提供的指令,最后按回车执行指令

:q(退出)
:q!(强制退出,可在编辑后未保存时退出)
:w(保存)
:wq(保存并退出)
:x(保存并退出,同上)

在正常模式下输入v进入可视选择模式(visual),移动光标选择指定内容
d剪切选定的内容
y复制选定的内容
多行粘贴插入:set paste(粘贴多行时不会自动缩进和连续注释)

显示行号:set nu
跳到首行gg
跳到最后一行G
跳到指定行nu gg
翻页快捷键Ctrl+F Ctrl+B
vim快速删除所有行命令ggdG

快速移动光标到行首:命令模式下按^(即Shift+6),插入模式下按Home键
快速移动光标到行尾:命令模式下按$(即Shift+4),插入模式下按End键
按单词跳转光标(可以跨行挑战):

w:跳转到下一个单词的第一个字符处
b:跳转到上一个单词的第一个字符处
e:跳转到下一个单词的最后一个字符处
ge(先按g再按e):跳转到上一个单词的最后一个字符处

行内查找并自动跳转光标:

f:正向查找(只查找光标右边的字符串),先按f再按要查找的单个字符键
F:反向查找(只查找光标左边的字符串),先按F再按要查找的单个字符键

四种进入插入模式的方法:
1.直接插入
i-在当前光标位置输入
I-在光标所在行第一个非空格字符开始输入
2.追加插入
a-在当前光标的下一个字符输入
A-在光标所在行最后一个字符后输入
3.行前行后
o-当前光标所在行行后插入新行
O-当前光标所在行行前插入新行
4.删除插入
s-删除光标所在的字符并开始插入
S-删除光标所在行并开始插入

查找:
命令模式下输入/string再按回车查找字符串

从上往下查找:/string 
从下往上查找:?string 
查找下一个:n 
查找上一个:N 

查找快捷键:
Shift+#快速查找选中词的上一个
Shift+*快速查找选中词的下一个
取消查找(搜索)结果高亮:noh或:set nohlsearch

替换:
:%s/string1/string2/gc
%全文替换
s替换模式
string1代表要替换的内容
string2代表替换成的内容
g同一行的都替换
c每一次替换都确认
快速注释所有行:%s/^/#
快速撤销注释所有行:%s/^#/
指定行替换:
:起始行数,结束行数s/要替换的内容/替换后的内容
快速注释10~20行:10,20s/^/#
快速撤销注释10~20行:10,20s/^#/

批量注释:

1.Ctrl+V进入可视块选择模式(visual block)
2.移动光标选中要注释的行开头
3.Shift+I进入首行插入模式(光标会跳到选中块的首行)
4.输入注释符号(#或//)
5.按两下ESC后自动为选中的行开头添加注释

删除注释:

1.Ctrl+V进入可视块选择模式(visual block)
2.移动光标选中要删除的注释符号
3.按下d删除选中的注释符号

备注:Ctrl+V快捷键可选中每行的单个字符,不连续选中,这和按v键有区别

单词自动补全:
根据当前编辑的文本已有的单词进行补全
在插入模式下按补全快捷键弹出补全列表

Ctrl+N从上往下选择补全列表中的单词
Ctrl+P从下往上选择补全列表中的单词

语法补全:
根据当前编辑的文本编程语言关键字进行补全
支持8种语言,包括C, (X)HTML with CSS, JavaScript, PHP, Python, Ruby, SQL和XML。
Ctrl+X Ctrl+O两个组合键一起使用,弹出关键字补全列表
行内容自动补全:
根据当前编辑的文本已有的行内容进行补全
Ctrl+X Ctrl+L两个组合键一起使用,弹出行内容补全列表
文件名自动补全:
根据当前目录下已有的文件名进行补全(文本所在目录)
Ctrl+X Ctrl+F两个组合键一起使用,弹出文件名补全列表

Vim的全局配置文件在/etc/vimrc,对所有用户生效。用户个人的配置文件在~/.vimrc
可以将命令模式下执行的vim指令提前写在配置里,这样就不需要每次进入vim时都执行一遍指令
在这里我将vim指令称作配置项,配置项一般都有"打开"和"关闭"两个设置。“关闭"只需在"打开"前面加上前缀"no”
例如:set number对应的关闭就是:set nonumber
查询某个配置项是打开还是关闭,可以在命令模式下,输入该配置,并在后面加上问号
例如:set number?就是查看number这个配置项是否打开,执行后返回number或者nonumber
查看配置项的帮助,可以在命令模式下,输入help,之后跟上需要查看帮助的配置项
例如:help number就是查看number这个配置项的帮助

2021年,在谷歌工作了15年之后,60岁的Bram决定退休,退休后Bram把全部精力放在了Vim的开发上,在2022年6月Bram发布了Vim的第9个版本。2023年7月6日,Bram最后一次更新Vim。Bram将他一生都贡献给了Vim,在此追悼Bram!
参考资料:
https://blog.csdn.net/zhangzeyuaaa/article/details/53404808
https://zhuanlan.zhihu.com/p/106309525
https://blog.csdn.net/denglin12315/article/details/128636933
https://ruanyifeng.com/blog/2018/09/vimrc.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值