博客
关于我
Vim常用操作
阅读量:481 次
发布时间:2019-03-06

本文共 1941 字,大约阅读时间需要 6 分钟。

模式

操作

说明

正常模式

(按Esc)左下角显示文件名或为空

插入模式

(按a 或 i 或 o键进入) 左下角显示--INSERT--

可视模式

(ctrl + v) 左下角显示--VISUAL-- [然后用jklh命令移动即可选择某些行或字符,按y复制 按d剪切,再按p粘贴]

插入命令

操作

说明

i

在当前位置前插入

I

在当前行首插入

a

在当前位置后插入

A

在当前行尾插入

o

在当前行之后插入一行

O

在当前行之前插入一行

查找命令

操作

说明

/text

查找text,按n健查找下一个,按N健查找前一个。

?text

反向查找查找text,按n健查找下一个,按N健查找前一个。

撤销和重做

操作

说明

u

撤销(Undo)

U

撤销对该行的操作

crtl-R

撤销撤销操作

移动命令

操作

说明

^

移动到本行第一个非空白字符上

0

移动到本行第一个字符上

$

移动到行尾

h

左移一个字符

l

右移一个字符

k

上移一个字符

j

下移一个字符

w

向前移动一个单词(光标停在单词首部)

e

向前移动一个单词(光标停在单词尾部)

b

向后移动一个单词

gg

移动到文件头

g_

移动到行尾最后一个非空字符

G

移动到文件尾

:240

跳转到指定行,例如跳转到240行

ctrl-e

向下滚动一行,光标位置不变

ctrl-y

向上滚动一行,光标位置不变

ctrl-d

向下滚动半屏

ctrl-u

向上滚动半屏

ctrl-f

向下滚动一屏

ctrl-b

向上滚动一屏

删除命令

操作

说明

x

删除光标处字符

3x

删除光标处开始向后3个字符

X

删除光标前一个字符

D或d$

删除光标至行尾

dj

删除上一行

dk

删除下一行

dd

删除当前行

10d

删除当前行开始的10行

dgg

删除当前行至文件首行

dG

删除当前行至文件末行

:1,10d

删除第1-10行

:11,$d

删除第11行至文件末行

J

合并两行

拷贝粘贴

操作

命令

yy

拷贝当前行

nyy

拷贝当前行开始的n行

p

光标后粘贴

P

光标前粘贴

"0p

如果需要多次粘贴,则需要使用一次0寄存器(记录最近一次操作)

剪切命令

操作

说明

dd

剪切当前行

d

剪切字符

:1,10d

剪切第1-10行

:1,10 m 20

移动第1-10行至20行后

文件格式编辑

(按v进入对字符操作的视图模式,按V进入对行操作的视图模式)

操作

说明

>>

增加缩进

<<

减少缩进

==

自动缩进

:s/test/text/

替换当前行第一个test为text

:s/test/text/g

替换当前行所有test为text

:1,$s/test/text/

替换第1行至末行中每一行的第一个test为text

:1,$s/test/text/g

替换第1行至末行中每一行的所有test为text

:%s/test/text/

替换每一行的第一个test为text

:%s/test/text/g

替换每一行的所有test为text

退出命令

操作

说明

:wq

保存并退出

ZZ

保存并退出

:q!

强制退出

:e!

放弃修改并重新打开

多窗口命令

操作

说明

:split file 或:new file

横向新窗口打开文件

:vsplit file或:vnew file

纵向新窗口打开文件

ctrl-w ctrl-w

循环切换窗口

ctrl-wj

移动到下方窗口

ctrl-wk

移动到上方窗口

ctrl-wh

移动到左方窗口

ctrl-wl

移动到右方窗口

ctrl-+

扩大窗口

ctrl--

缩小窗口

:close

关闭窗口(除最后一个窗口)

:q

关闭窗口

:only

放弃修改并关闭所有窗口,仅保留当前窗口

宏命令

操作

说明

.

重复前一个命令

:help

显示帮助

:![command]

执行linux命令

q[a-z]

录制宏

q[A-Z]

修改宏

@[a-z]

使用宏

:reg

查看宏

寄存器

(使用"开头,p或P结尾)

操作

说明

"

未命名寄存器,上一次复制或删除的文本

"[0-9]

数字寄存器,文本复制和删除历史

"-

行内删除寄存器,删除少于一行的文本

"[a-z,A-Z]

命名寄存器,存放文本

"%

只读寄存器,存放当前文件名

".

只读寄存器,存放最近插入的文本

":

只读寄存器,存放最近执行的命令

"#

轮换缓冲区寄存器,存放交替文件的名字

"=

表达式寄存器,计算并返回表达式结果

"*

系统寄存器,系统剪切板

"+

系统寄存器,系统剪切板

"~

系统寄存器,拖拽的文本

"_

黑洞寄存器,彻底删除的文本

"/

搜索模式寄存器,存放最近搜索的模式

转载地址:http://eeldz.baihongyu.com/

你可能感兴趣的文章
MySQL外键约束
查看>>
MySQL多表关联on和where速度对比实测谁更快
查看>>
MySQL多表左右连接查询
查看>>
mysql大批量删除(修改)The total number of locks exceeds the lock table size 错误的解决办法
查看>>
mysql如何做到存在就更新不存就插入_MySQL 索引及优化实战(二)
查看>>
mysql如何删除数据表,被关联的数据表如何删除呢
查看>>
MySQL如何实现ACID ?
查看>>
mysql如何记录数据库响应时间
查看>>
MySQL子查询
查看>>
Mysql字段、索引操作
查看>>
mysql字段的细节(查询自定义的字段[意义-行列转置];UNION ALL;case-when)
查看>>
mysql字段类型不一致导致的索引失效
查看>>
mysql字段类型介绍
查看>>
mysql字段解析逗号分割_MySQL逗号分割字段的行列转换技巧
查看>>
MySQL字符集与排序规则
查看>>
MySQL字符集乱码
查看>>
mysql存储IP地址的数据类型
查看>>
mysql存储中文 但是读取乱码_mysql存储中文乱码
查看>>
MySQL存储引擎--MyISAM与InnoDB区别
查看>>
mysql存储总结
查看>>