vi/vim命令,使用vi编辑器命令详解

linux常用命令:vi/vim

vi命令有三种模式:一般模式,编辑模式,命令模式(底行模式)

        可以通过 vi [文件路径]文件名 的命令启动vi,并且打开指定的文件进行查看、编辑,其中[文件路径] 是可选参数。如果省略了前面的文件路径,则vi会在当前目录下查到指定的文件。

    跟touch命令一样,如果文件不存在,vi还会自动创建文件。当然创建文件的前提还是要有相关的操作权限

1.一般模式

一般模式是vi的默认模式,启动vi后,默认会进入到一般模式。在这个模式下可以进行复制、剪切、粘贴、删除等操作

(1).移动光标 

1).以字符为单位移动光标

正如在windows操作系统下的上、下、左、右四个按键,vi命令也是可以使用这四个按键操作光标进行上、下、左、右的移动。同时vi还有其他四个按键也拥有同样的功能

按键 功能说明
h 使光标向左移动一个字符
j 使光标向下移动一个字符
k 使光标向上移动一个字符
l 使光标向右移动一个字符

2).以单词为单位移动光标

vi会以空格或者其他一些符号为分隔符,使用这些快捷键,可以让光标快速定位到单词的开头或者结尾

按键 功能说明
w 快速将光标移动到下一个单词的第一个字母
再按一次该按键光标会跳到下一个单词的第一个字母
e 快速将光标移动到光标所在位置的单词的最后一个字母
再按一次该按键光标会跳到下一个单词的最后一个字母
b 快速将光标移动到光标当前所在位置的单词的第一个字母
再按一次该按键光标会跳到上一个单词的第一个字母

3).以行为单位移动光标

以行为单位,让光标在整个文档随意上下跳转

按键 功能说明
^ 英文输入法状态下,按住键盘的shift + 数字键6
跟正则表达式的功能一样,该按键会将光标快速定位到光标所在行的行首
$ 英文输入法状态下,按住键盘的shift + 数字键4
跟正则表达式的功能一样,该按钮会将光标快速定位到光标所在行的行尾
[n]G n为阿拉伯数字,表示的是行号,G则一定是大写状态下的G键。
如:15G,光标会快速跳转到文档的第15行
CTRL + g ctrl 键 + 小写字母g
该功能是显示光标当前所在的位置,处于文档的第几行第几列

4).以页为单位移动光标

其实这里理解为翻页可能会更好一些,但是为了方便记忆,暂且先归为按页跳转

按键 功能说明
CTRL + d: 向下滚动半页,助记(d:down)
CTRL + u: 向上滚动半页,助记(u:up)
CTRL + f : 向下滚动一页,助记(f:front)
CTRL + b: 向上滚动一页,助记(b:back)

5).以文档为单位移动光标

直接就是跳到文档的开头和结尾了

按键 功能说明
gg 小写字母状态下连续按两次g键
光标会马上跳转到文档的首行
G 大写字母状态下按G键
光标会马上跳到文档的最后一行

(2).复制功能

复制功能的关键按钮是 "y"键,再结合上面移动光标的功能,构造出来的结合键,就是一些功能强大的复制功能。

1).以单词为单位进行复制

    使用”y“键,再跟”以单词为单位移动光标“,构造出来的组合键,就是跟单词相关的复制功能。

按键 功能说明
yw 复制光标所在位置,直到下一个单词开头的内容
ye 复制光标所在位置,直到当前单词结尾(或者下一个单词结尾)的内容
yb 复制光标所在位置,直到当前单词开头(或者前一个单词开头)的内容

2).以行为单位进行复制

    使用”y“键,再跟”以行为单位移动光标“,构造出来的组合键,就是跟单词相关的复制功能

按键 功能说明
y^ 先按下y键,输入 ^ 将光标跳转到行首
该组合键会复制光标当前所在位置,直到本行最开头的内容
y$ 先按下y键,输入 $将光标跳转到行尾
该组合键会复制光标当前所在位置,直到本行最后面的内容
[n]yy n为可选参数,可以是任意阿拉伯数字,意思是要复制多少行,只输入yy则会复制一行
如:3yy,则代表复制光标当前所在行,连同往下数的2行进行复制

(3).剪切(删除)功能

剪切功能的关键按键是”d“键,再结合上面移动光标的功能,构造出来的结合键,就是一些功能强大的剪切功能

    提醒一下,剪切功能就是把原来的内容”装“到剪切板,然后将原来的内容”删除“。剪切后不粘贴,那么剪切功能也可以当作是删除功能来使用的。

1).以单词为单位进行剪切(删除)

    使用”d“键,再跟”以单词为单位移动光标“,构造出来的组合键,就是跟单词相关的复制功能。

按键 功能说明
dw 剪切光标所在位置,直到下一个单词开头的内容
de 剪切光标所在位置,直到当前单词结尾(或者下一个单词结尾)的内容
db 剪切光标所在位置,直到当前单词开头(或者前一个单词开头)的内容

2).以行为单位进行剪切(删除)

使用”d“键,再跟”以行为单位移动光标“,构造出来的组合键,就是跟单词相关的复制功能。

按键 功能说明
d^ 先按下d键,输入 ^ 将光标跳转到行首
该组合键会剪切(删除)光标当前所在位置,直到本行最开头的内容
d$ 先按下d键,输入 $将光标跳转到行尾
该组合键会剪切(删除)光标当前所在位置,直到本行最后面的内容
[n]dd

n为可选参数,可以是任意阿拉伯数字,意思是要复制多少行,只输入dd则会剪切(删除)一行
如:6dd,则代表复制光标当前所在行,连同往下数的5行进行剪切(删除)

(4).粘贴功能

粘贴功能就是小写字母”p“键,和大写字母”P“键,但是如果复制、剪切的内容不一样,实现起来也会有点不一样。

1).以单词为单位粘贴

按键 功能说明
p 小写字母p
光标当前所在位置之后,粘贴出前复制、剪切的内容
P 大写字母P
光标当前所在位置之前,粘贴出前复制、剪切的内容

2).以行为单位粘贴

按键 功能说明
p 小写字母p
光标当前所在行的内容不动,在光标所以行的下一行开始插入复制的内容
P 大写字母P
光标当前所在行的内容会往下移,跟在粘贴出来的内容后面

(5).删除补充

删除功能还有小写字母”x“键,还有大写字母”X“键。除以上面写到的按行进行删除外,vi也有类似于windows记事本的按字符删除的功能,跟退格键、Del键一样的功能。

按键 功能说明
[n]x 小写字母x
n为可选参数,若忽略参数n,则x键的功能就是windows记事本软件下的退格键
如:6x, 直接删除光标所在位置及后面5个字符
[n]X 大写字母x
n为可选参数,若忽略参数n,则X键的功能就是windows记事本软件下的Del键
如:8X,直接删除光标所在位置及前面7个字符

(6).重写功能

重写功能的关键按钮是 小写字母"r"键和大写字母”R“键。重写功能就是将原来的内容覆盖了,用新的内容代替了原来的内容。

按键 功能说明
r 小写字母r
先按下r键,再输入新内容,则新内容只会将光标当前所在位置的内容替换
R 大写字母R
跟windows系统下的Word文档下,按下Ins(insert)键一样。
只要不断地输入内容,光标所在位置及后面已有的内容都会被替换,需要按Esc键主动退出

(7).撤回功能

    撤回功能只有一个按键,通过小写字母”u“按钮,可以撤回前面对文档的修改

2.编辑模式

进入编辑模式后,vi的操作就跟平常在windows系统下使用记事本工具差不多了。从一般模式进入编辑模式,有以下几个按键可以选择,不同的按钮,也有不同的效果

按键 功能说明
a 小写字母a
在光标所在位置后面进行编辑
i 小写字母i
在光标当前所在位置进行编辑
o 小写字母o
光标所在行的下面插入空白行,同时光标移动到新插入的空白行
A 大写字母A
光标移动到当前所在行的最后面进行编辑
I 大写字母I
光标移动到光前所在行的最前面进行编辑
O 大写字母O
在光标所在行插入新的空白行,光标停留在新行,光标所以行的内容所部住下移动

3.命令模式(底行模式)

命令模式下可以进行保存、退出、查找 、替换等工作

(1).保存、退出

按键 功能说明
:w 保存对文档的修改但不退出
:wq 保存对文档的修改修改并退出
:q! 放充对文档的修改并强行退出

(2).查找

按键 功能说明
/ 从光标所在位置,向下查找,查找到第一个匹配的内容即停止
可以通过按键”n“继续向下查找,或者通过按钮”N“向上进行反向查找
? 从光标所在位置,向上查找,查找到第一个匹配的内容即停止
可以通过按键”n“继续向上查找,或者通过按钮”N“向下进行反向查找

(3).替换

按键 功能说明
s/old_string/new_string 将光标所在行第一次匹配到的字符串old_string,替换为新的字符串new_string
s/old_string/new_string/g 将光标所在行所有匹配到的字符串old_string,替换为新的字符串new_string
%s/old_string/new_string 将整个文档所有行第一次匹配到的字符串old_string,替换为新的字符串new_string
%s/old_string/new_string/g 将整个文档所有能匹配到的字符串old_string,替换为新的字符串new_string

(4).其他功能

按键 功能说明
:set nu 显示行号
:set nonu 取消显示行号
:n 快速跳转到文档的第n行

命令模式无法直接进入到编辑模式,同样编辑模式也无法直接进入到命令模式。编辑模式,或者命令模式,通过ESC键可以切换到一般模式,然后再通过输入对应的命令进入到编辑模式或者命令模式 

vi/vim命令,使用vi编辑器命令详解_第1张图片

你可能感兴趣的:(Linux,unix,vim,vi)