首页 > 代码库 > vim学习笔记

vim学习笔记

翻出来了很久以前写的vimnote.txt

《vim实用技巧》这本书从头到尾看过两三遍,因为记性太差,就写了这么个文档记录一些常用指令,用熟了以后再去探索一些更强大的功能

最近转战linux后开始频繁使用vim,希望尽快熟练掌握

vimnote.txt:

ctrl-w s 水平分屏
ctrl-w v 垂直分屏
ctrl-w r 旋转窗口位置
--------------------------
I 行首插入
A 行尾插入
f 行内查找
F 行内反向查找
; 行内下一个
, 行内上一个
* 下一个该单词
# 上一个单词
n 下一个
N 上一个
y copy
d delete
c change
gu 变小写
gU 变大写
~ 反转大小写
t till
T anti-till
/ 向后查找
? 向前查找
s 删除当前字符并进入插入模式
S 删除整行并插入
C-a 增加数字(光标不在数字上时自动移动到改行第一个数字)
C-x 减少数字(光标不在数字上时自动移动到改行第一个数字)
C-w 插入模式下删除前一个单词
C-u 插入模式下删除整行
C-r 调用寄存器
C-r = 调用运算寄存器
C-r 0 插入模式下粘贴(寄存器0)

--------------------------
^ 到行首第一个非空字符
gg 跳转到第一行
w 下一个单词头
e 下一个单词尾

--------------------------
yy copy当前行
:noh 取消搜索高亮
删除空白行: :g/^\s*$/d
全文自动缩进:gg=G

--------------------------
l letter
w word
s sentense
p paragraph
b block
--------------------------
m{a-z}: 局部标记,只用于当前文件
m{A-Z}: 全局标记。重启vim,标记仍然有效
`a 跳转到标记a
--------------------------
:s/old/new - 用new替换当前行第一个old
:s/old/new/g - 用new替换当前行所有的old
:n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old
:%s/old/new/g - 用new替换文件中所有的old
:%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首
:%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾
------------------------------------
qa:开始录制宏a
q:停止录制
@a:播放宏a
--------------------------
gd: 跳转到局部变量的定义处
gD: 跳转到全局变量的定义处,从当前文件开头开始搜索
ci(, di(, yi(:修改、剪切或复制()之间的内容
ca(, da(, ya(:修改、剪切或复制()之间的内容,包含()
--------------------------
简单计算器: 在插入模式下,输入C-r =,然后输入表达式,就能在 光标处得到计算结果
--------------------------
zz: 将当前行移动到屏幕中央
zt: 将当前行移动到屏幕顶端
zb: 将当前行移动到屏幕底端
ctrl+f: 下翻一屏
ctrl+b: 上翻一屏
ctrl+d: 下翻半屏
ctrl+u: 上翻半屏
ctrl+e: 向下滚动一行
ctrl+y: 向上滚动一行
n%: 到文件n%的位置
--------------------------
命令行模式:
% 选中全文
1 第一行
0 第零行(不存在的虚拟行)
. 光标所在行
‘< 选中区域的起始行
‘> 选中区域的结束行

example:
:%normal i// 注释全文
:%normal A; 全文尾部加分号
:%normal . 全文执行.(重复命令)

tab 正向补全
S-tab 反向补全
C-d 提示所有选项

vim学习笔记