1. :%s/ +$//g 删除文本中的^M字符。
2. :%s/s+$//g 有的Vim IDE里会看到文本中有红色的块,一般是行尾多余的空格造成的,这时就用它清除。
3. :%s/ height=\"d{3}\"//g 将文本中的 height="324"删除(注意height前有个空格),常用于删除数据库sql文件中的图片高度(PS:不然你就要去后台里一篇文章一篇文章的修改了,呵呵!)
4. :%s/^ / 删除文本中的空行。
5. :%s/^ /andychen 将文本中的空行全部替换为andychen。
6. :g/pattern/d 删除有pattern的所有行
快捷键:
1. I和 A 分别插入文本到行首或尾部。
2. CTRL-p (go to anything)
3. df,从当前光标位置上的字符一直删除到遇到逗号(包括逗号)。
4. d/foo 一直删除直到第一次匹配“foo”的位置。
命令行模式:
提示符 | 说明 |
---|---|
: | 执行一条Ex命令 |
/ | 执行正向查找 |
? | 执行反向查找 |
= | 对一个vim 脚本表达式求值,在插入模式下安=才能进入,只能计算加减乘 |
:s/target/repl | 执行行内替换 (&重复做、u撤销) |
普通模式:
命令 | 说明 |
---|---|
. | 重复上一个操作 |
C 等效 c$ | 向后删除 |
s 等效 cl | 删除当前光标下的字符,并进入插入模式 |
S 等效 ^C | 从当前行的行首删除整行内容,并进入插入模式 |
I 等效 ^i | 将光标移到当前行行首,并进入插入模式 |
A 等效 $a | 将光标移到当前行行尾,并进入插入模式 |
o 等效 A | 向下新增一行,并进入插入模式 |
O 等效 ko | 向上新增一行,并进入插入模式 |
vit | 选中一对html标签之间的文本 |
>G | 缩进光标所在行及以下的所有行 |
daw | 删除当前光标所在的整个单词 (delete a word) |
cit | 删除HTML标签里的内容 |
<C-a>/<C-x> | 对当前数字加1/减1 |
zz | 显示当前所在行的上下文 |
r | 替换当前字符 |
p/P | 向光标后/前粘贴内容 |
R | 进入替换模式,可以连续替换 |
# | 高亮与当前光标所在单词相同的所有单词 |
* | 选中当前光标所在单词一样的单词 |
U | 将当前选中的字符转为大写 |
u | 将当前选中的字符转为小写 |
`. | 回到上次修改的地方 |
mk | 把当前光标所在位置,设置一个名字为k的标记,使用`k可以跳回这里,最多26个标记。 |
mB | 把当前文件,设置一个名字为B的标记,在其他文件下使用`B可以跳到这个文件来,最多26个标记。 |
{/} | 跳到上一段/下一段的开头 |
H/M/L | 跳到屏幕的上/中/下 |
"+yy | 复制光标所在行到系统剪贴板 |
"+p | 将系统剪贴板的内容粘贴到vim来 |
插入模式下:
命令 | 说明 |
---|---|
<C-h> | 删除前一个字符 |
<C-w> | 删除前一个单词 |
<C-u> | 删除至行首 |
<C-[>/<C-o> | 替代ESC |
<C-v>u{1234} | 插入特殊字符,例如:<C-v>u00bf |
可视化模式:
命令 | 说明 |
---|---|
viw | 选中当前单词 |
v | 激活面向字符的可视模式 |
V | 激活面向行的可视模式 |
<C-v> | 激活面向列块的可视模式 |
vb | 以-个单词为单位,往前选中,如:vbbb,选中前3个单词 |
ve | 以-个单词为单位,往后选中,如:vee,选中前2个单词 |
o | 在上面三种操作中,移动光标到选中区域的首或尾 |
gv | 重选上次的高亮选区 |
<C-v> j j $ A ; <ESC> | 在长短不一的行后都加上一个;号 |
操作符:
命令 | 说明 |
---|---|
c | 修改 |
d | 删除 |
y | 复制到寄存器 |
g~ | 反转大小写 |
gu | 转换为小写 |
gU | 转换为大写 |
> | 增加缩进 |
< | 减小缩进 |
= | 自动缩进 |
! | 使用外部程序过滤动作命令所跨越的行 |
动作命令:(配合操作符c,d,y,v使用)
命令 | 说明 |
---|---|
iw | 当前单词 |
iW | 当前字符串(以空格为分界) |
is | 当前句子 |
ip | 当前段落 |
aw | 当前单词 + 一个空格 |
aW | 当前字符串 + 一个空格(以空格为分界) |
as | 当前句子 + 一个空格 |
ap | 当前段落 + 一个空行 |
命令行模式:
命令 | 说明 |
---|---|
:3d | 删除第三行 |
:2,5p | 2~5行 |
:.,$p | 当前行到最后一行 |
:%p | 所有行 |
:ls | 查看在缓冲区的所有文件 |
:buffer N | 结合:ls 使用,调到指定的文件进行编辑 |
:e. | 打开当前路径的文件目录 |
:g/andy/d | 删除有"andy"字符的行 |
:v/andy/d | 只保留有"andy"字符的行 |
:sort | (vi{,:sort) 对css的属性按字母排序 |
其他:
vim 中提到的 缓冲区
就是vim在编辑某个文件时,实际上是在编辑.swap文件,保存时才被写入到实际的文件中的。
vim -u NONE -N 以出厂配置来使用vim
操作符号 + 动作命令 = 操作