VIM学习笔记

2017-04-28  本文已影响9人  KevinLive

原文地址:LoveDev

VIM == "编辑器之神"

移动

单词移动

Command Alias
W w 移动到下一个单词开头
E e 移动到下一个单词结尾
B b 倒退到上一个单词开头

整行移动

Command Alias
0 移动到行首
$ 移动到行末
+ 移动到下一行开头
- 移动到上一行开头

根据行号来移动

Command Alias
Ctrl+g 显示当前行信息
nG 转至第n行
G 转至文本末尾
gg 移至文本开头

行位置插入

Command Alias
A 在一行的结尾处追加
I 在一行的开头处插入
o 在光标所在位置的下一行打开新行插入
O 在光标所在位置的上一行打开新行插入

tips1:10I*<Esc>先输入10,然后输入i,接着输入*号,最后按<Esc>

这样就可以在一行开头输入十个*

    

tips2:同样,5o###<Esc>先输入5,然后输入o,接着输入###,最后按<Esc>

这样就可以在下列5行中每一行开头插入###

   

插入

字符位置插入

Command Alias
i 在光标之前插入
a 在光标之后追加

删除

字符删除

Command Alias
x 删除光标所在处字符
X 删除光标所在前字符

单词删除

Command Alias
dw 删除到下一个单词开头
de 删除到本单词末尾
dE 删除到本单词末尾包括标点在内
db 删除到前一个单词
dB 删除到前一个单词包括标点在内

行删除

Command Alias
dd 删除一整行
3dd 删除三整行
D d$ 删除光标位置到本行结尾
d0 删除光标位置到本行开头

复制

行复制

Command Alias
y^ 复制至行首
y$ 复制至行尾
yy 复制整行
yH 从当前行复制到屏幕顶端
yL 从当前行复制到屏幕低端

单词和字符复制

Command Alias
ynl 向右复制n个字符
ynh 向左复制n个字符
ynw 向前复制n个单词
ynb 向后复制n个单词

修改

字符替换

Command Alias
r 单个字符替换
R 连续替换
~ 更改大小写

单词修改

Command Alias
cw 从光标处修改到单词结尾
cb 从光标处修改到单词开头

行修改

Command Alias
c$ 从光标修改到本行末尾
C 功能同上
c0 从光标修改到本行开头
cc 删除整行从头修改
S 功能同上
s 删除光标所在位置的字符,然后插入

合并行

多行合并成一行

AAAAA
BBBBB
CCCCC

合并为:
AAAAA BBBBB CCCCC

方法1: normal状态下 3J 其中的3是范围,可以是书签或者搜索位置等方式实现,J为合并
注: 如果改为3gJ的话,则合并时各行没有空白AAAAABBBBBCCCCC, 下面方法类似,不再重复这两种合并方式的区别.

方法2: 命令状态下 :1,3 join 或 :1,3 j

方法3: 传统一点的,替换换行符的方式,为避免最后一行也被换掉,范围缩小了,命令状态下 :1,2s/\n/ /

隔行合并

AAAAA
BBBBB
CCCCC
DDDDD
合并为:

AAAAA BBBBB
CCCCC DDDDD
方法1: 借用一下宏录制功能, normal状态下 qaJjq 实现录制, 然后在合适的区域重复执行n遍,这里2遍即可,normal状态下2@a

方法2: 命令状态下 :1,4g/^/ join 增加了g过滤后,合并变成了隔行处理

恢复

Command Alias
u 撤消上次命令
U 恢复整行
ctrl+r 重做
. 重复
e! 全文恢复
上一篇下一篇

猜你喜欢

热点阅读