vi常用命令

本秂侑毒 提交于 2019-12-23 06:54:04

【输入模式】:

ESC: 进入命令模式

【命令模式】:

> ZZ: 保存退出

> : -> 进入底行模式 (如果按Q进入,必须输入“visual”返回命令模式。)

> kjhl : 上下左右

> x:  删除字符   dd: 删除行

> s/S: 删除所在字符/行,并进入输入模式

> r: 替换光标所在字符   R: 从当前光标开始替换字符,并进入输入模式

> u -> 撤销上一操作  U: 撤销对当前行的所有操作

> 0 -> 移动到行首   $ -> 移动到行尾

> H: 移到视窗第一行  M: 移到视窗中间行   L: 移到视窗最后行

> b: 下一单词第一字母  w: 上一单词第一字母  e: 下一单词的最后字母

> ^: 光标所在列第一个非空白字符

> Ctrl + f: PageUp  Ctrl + b: PageDown  Ctrl+u: 向上半页  Ctrl+d: 向下半页

> / -> 查找   n -> 查找下一个  N -> 查找上一个

> a/A: 光标后添加文本  i/I: 光标前插入文本  o/O: 添加新行 

【底行模式】:

> x/wq: 保存退出 w: 保存但不退出  q: 退出  q! -> 退出并放弃修改

> set nu: 显示行货

> ESC 或 错误的命令 : 返回命令模式

参见:

http://wenku.baidu.com/view/dc61683f87c24028915fc3ef.html

http://wenku.baidu.com/view/b608de0379563c1ec5da71b9.html

 

一般模式下移动光标
h或向左方向键
光标向左移动一个字符
j或者向下方向键
光标向下移动一个字符
K或者向上方向键
光标向上移动一个字符
l或者向右方向键
光标向右移动一个字符
Ctrl + f 或者pageUP键
屏幕向前移动一页
Ctrl + b 或者pageDOWN键
屏幕向后移动一页
Ctrl + d
屏幕向前移动半页
Ctrl + u
屏幕向后移动半页
+
光标移动到非空格符的下一列
-
光标移动到非空格符的上一列
n空格(n是数字)
按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n
0(数字0)或者Shift+6
移动到本行行首
Shift+4
即’$’移动到本行行尾
H
光标移动到当前屏幕的最顶行
M
光标移动到当前屏幕的中央那一行
L
光标移动到当前屏幕的最底行
G
光标移动到文本的最末行
nG(n是数字)
移动到该文本的第n行
gg
移动带该文本的首行
n回车(n是数字)
光标向下移动n行
一般模式下查找与替换
/word
向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜后一个
?word
想光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜前一个
:n1,n2s/word1/word2/g
在n1和n2行间查找word1这个字符串并替换为word2,你也可以把”/”换成”#”
:1,$s/word1/word2/g
从第一行到最末行,查找word1并替换成word2
:1,$s/word1/word2/gc
加上c的作用是,在替换前需要用户确认
一般模式下删除复制粘贴
x,X
x为向后删除一个字符,X为向前删除一个字符
nx(n为数字)
向后删除n个字符
dd
删除光标所在的那一行
ndd(n为数字)
删除光标所在的向下n行
d1G
删除光标所在行到第一行的所有数据
dG
删除光标所在行到末行的所有数据
yy
复制光标所在的那行
nyy
复制从光标所在行起向下n行
p,P
p复制的数据从光标下一行粘贴,P则从光标上一行粘贴
y1G
复制光标所在行到第一行的所有数据
yG
复制光标所在行到末行的所有数据
J
讲光标所在行与下一行的数据结合成同一行
u
还原过去的操作
进入编辑模式
i
在当前字符前插入字符
I
在当前行行首插入字符
a
在当前字符后插入字符
A
在当前行行末插入字符
o
在当前行下插入新的一行
O
在当前行上插入新的一行
r
替换光标所在的字符,只替换一次
R
一直替换光标所在的字符,一直到按下ESC
命令模式
:w
将编辑过的文本保存
:w!
若文本属性为只读时,强制保存
:q
退出vim
:q!
不管编辑或未编辑都不保存退出
:wq
保存,退出
:e!
将文档还原成最原始状态
ZZ
若文档没有改动,则不储存离开,若文档改动过,则储存后离开,等同于:wq
:w [filename]
编辑后的文档另存为filename
:r [filename]
在当前光标所在行的下面读入filename文档的内容
:set nu
在每行的行首显示行号
:set nonu
取消行号
n1,n2 w [filename]
将n1到n2的内容另存为filename这个文档
:! command
暂时离开vim运行某个linux命令,例如 :! ls /home 暂时列出/home目录下的文件,然后会提示按回车回到vim
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!