Linux的vi/vim命令

前提是你 提交于 2019-12-02 08:39:34
什么是vi/vim

       Vi/vim是一个强大的文本编辑器,是Linux中最常用的文本编辑器,它的作用的是建立、编辑或修改、显示文本内容。

Vi/vim的三种工作模式:


vim三种工作模式

Vi和vim的使用

使用之前我要说明一件事情就是vi和vim的命令比较多,这里给出一些记忆的方法,希望对大家有所帮助。

首先是一个文本的结构,别看它很简单,但是很多人容易忽略,

1.    文本结构,文本由行组成,行由每一个字符组成,所以vi/vim编辑器中操作的东西,不是多行,就是一行中的多个字符,希望大家带着这个思路来阅读下面编辑器的使用

2.    操作文本分成几大类,就是光标移动,搜索替换,删除,复制,黏贴,保存,退出,撤销等,下面将会按照这个顺序给大家讲解

正常模式:

 移动光标

移动光标-一行中的字符

h或←

光标向左移动一个字符

j或↓

光标向下移动一个字符

k或↑

光标向上移动一个字符

l或→

光标向右移动一个字符

n<space>

n是数字,表示向右移动这一行的n个字符

0或者Home

数字0,移动到这一行的最前面的字符处

$或者End

移动到这一行的最后字符处

 

移动光标-多行操作

ctrl+f(forward)

屏幕向下移动一页

ctrl+b(backward)

屏幕向上移动一页

ctlr+d

屏幕向下移动半页

ctlr+u

屏幕向上移动半页

+

光标移动到非空格符的下一行

-

光标移动到非空格字符的上一行

H (head)

光标移动到这个屏幕最上方的那一行的第一个字符

M(Middle)

光标移动到这个屏幕的中央的那一行的第一个字符

L(low)

光标移动到这个屏幕的最下方的那一行的第一个字符0

G

移动到这个文本的最后一行

nG

n为数字,移动到这个文本

gg

移动到这个文件的第一行(常用)

n<Enter>

n是数字,光标向下移动n行(常用)

搜索和替换

 

搜索和替换功能

/string

光标向下寻找一个名字为string的字符串

?string

光标向上寻找一个名字为string的字符串

:n1,n2/string1/string2/g

在n1和n2行之间寻找string1的字符串,找到之后用string2来替换

:n1,n2/string1/string2/gc(confirm)

在n1和n2行之间寻找string1的字符串,找到之后用询问是否用string2来替换

:1,$s/string1/string2/g

在第1行和最后一行之间寻找string1的字符串,找到之后用string2来替换

:1,$s/string1/string2/gc

在第1行和最后一行之间寻找string1的字符串,找到之后询问是否用string2来替换

n

n是英文按键,代表重复前一个动作,比如重复执行查找字符串和替换操作,和上面的搜索和替换命令配套

N

N是英文按键,代表执行相反的操作,比如上一个命令是向下查询,那么它就向上,和搜索和替换命令配套使用

 

删除、赋值和粘贴

 

删除-一行中的字符

x,X

x是删除光标位置的下一个字符,X是删除光标所在位置的上一个字符

nx

n为数字,连续删除后面n个字符

d$

删除光标所在位置到这一行的最后一个字符

d0

数字0,删除光标所在位置,到该行的第一个字符

 

 

删除-多行

dd

删除光标所在的那一行

ndd

n为数字,删除光标所在行的下n行(不包括本行)

d1G

删除光标所在行的到第一行的数据

dG

删除光标所在行到最后一行的数据

 

复制-一行中的字符

y0

数字0,复制光标所在位置到该行的行首

y$

复制光标所在位置到该行的行尾

 

复制-多行

yy

复制光标所在的那一行

nyy

复制光标所在行的下n行

y1G

复制光标所在行到第一行的所有数据

yG

复制光标所在行到最后一行的所有数据

 

 

粘贴

p,P

p将复制的数据在光标的下一行贴上,P将复制的数据在光标的上一行贴上

 

撤销

u

复原前一个动作,相当于win的(ctrl+z),常用

ctrl+r

重做上一个动作,可以和u配套使用,一直撤销

.(小数点)

小数点,重复前一个动作,一般用来重复删除,贴上的操作

输入模式

输入模式

i,I

i进入输入模式,并且从光标所在处输入,I从光标所在处的前一个位置输入

a,A

进入输入模式:a是从光标所在处的后一个字符输入,A是从光标所在行的最后一个字符输入

o,O

进入输入模式:o为在光标所在行的下一行输入一个新的行,O为目前光标所在行的上一行输入一个新的行

r,R

进入取代模式,就是你输入的数字会代替当前光标所在的字符。r只会取代光标所在字符一次,R是一致取代光标所在的字符处。一直到按下ESC

ESC

退出输入模式,回到正常模式

0或者Home

数字0,移动到这一行的最前面的字符处

$或者End

移动到这一行的最后字符处

命令模式

      

命令模式

:w

将编辑的数据保存

:w!

将编辑的数据,强制保存到这个文件中

:q

离开编辑器

:q!

强制退出,不保存曾经修改过的文件

:wq

先保存。然后退出

ZZ

大写的ZZ,如果档案没有改动,那么不保存退出,如果文件改动,就保存退出

:w [filename]

将文档另存为filename的文件

:n1,n2 w [filename]

将n1到n2的内容保存到filename这个文件中

:r [filename]

将filename中的文件中的数据,读入本文件光标所在行的行后面

:! 命令

暂时离开vi指令到,指令行模式下,比如:! ls /

这样就可以在vi下面查看根路径的目录了,不用来回切换指令和编辑模式

:set nu

设置显示行号,前面的有关行号的操作,通常和这个一起用

:set nonu

取消行号


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!