Vim 部分常用快捷键
背景
本文记录学习vim过程中,常用到的一些快捷键
1. 将一个文件A的某几行拷贝到另一个文件B中。
- 首先输入命令
vim A
,进入文件A中 - 起始为正常模式,通过命令
:sp
或:vsp
切分一个窗口(sp为上下切分;vsp为左右切分,v表示的是垂直的意思vertical),需要注意这时两个窗口都是文件A的内容 - 输入
:e B
,表示在其中一个窗口打开B文件,这是光标自动进入到B文件 - 切换到源文件(切换时control+w 再按一下w)
- 光标移动到要拷贝的首行,输入一个想要拷贝的行数数字,然后yy,暂存在寄存器中
- 通过上述的切换方法(切换时control+w 再按一下w),再切换回文件B,通过
p
粘贴,完成拷贝
2. 有选择的保存
光标移动到某行,按v
进入visual模式,光标移动到想存的最后一行,按:
,之后w filename
,回车,将这几行写入到filename里
当前文件插入其他文件的内容,光标到某位置,按:r filename
,再此处插入filename的内容
如果用:r !command
可以将命令的输出结果放置到指定位置
3. 关于复制与粘贴
visual模式选中 y
复制(yank,提起)
yw
可以复制一个单词
p
粘贴(put,放置)
4. 删除
x
删除一个字符
dw
从光标处删除到下个单词的起始
de
删除到单词末尾
d$
从光标删除到行末
dd
删除整行
[x]dd
删除x行
ce
可以删除某个单词到结尾,并进入编辑模式
想要从某行删除到结尾,则先跳到结尾,然后输入:STARTLINE,. d
, 这里STARTLINE为要删除的第一行
5. 插入或进入编辑模式
o
在光标下一行插入新一行并编辑
O
在上一行插入新的一行进行编辑
a
光标后开始编辑
A
结尾开始编辑
6. 移动光标
数字+w/e
光标移动,分别代表前移x个单词和前移到第x个单词末尾,0可以回到行首
d
和w/e
之间也可以有数字
e
移动到单词尾
w
移到单词首
0
回到行首
7. 撤销
u
撤销最后一次修改
U
撤销整行修改
CTRL+R
可以撤销已实施的撤销操作
8. 查找与替换
/string
查找string, n
查找下一个,N
反向查找。如果逆向查找(从下向上查)用?string
代替/string
。另外通过CTRL+o
回到之前的位置,CTRL+i
转到新位置
:s/old/new/
替换第一个old为new
:s/old/new/g
整行替换
:x,#s/old/new/g
从x行到#行替换
:%s/old/new/g
整个文件的替换
:%s/old/new/gc
每次替换都要询问一下
r + 一个新字符
,可以将光标原来所处的位置置换为新字符
(举例:光标处于apple的a上,现在在正常模式下,按r
,再按b键,apple将变为bpple)
R
功能同r
,只是直接进入到替换模式,将替换之后的所有字符直到通过esc
回到正常模式
9. 关于行号
CTRL+g
查看行号
gg
到文件首行
G
到文件末尾行
行号 + G
到指定行
10. 其他
删除后再按p
会将最后一次删除的内容,置于光标处
%
匹配括号
:! command
执行外部command
:w filename
将文件写成一个新filename