linux命令复习

vim分为命令行模式,编辑模式,转义命令(需要输入:)模式

退出vim (在转义命令模式下)

退出vim
:w 保存
:wq 保存并退出
:q 不保存并退出
:q! 强制退出
:! 强制
:ZZ 保存并退出(和wq一样)

三种进入编辑模式的方法 

插入命令:

i 在当前光标位置进入插入模式
I 在当前光标所在行的行首进入插入模式

 追加模式:

a 在当前光标之后进入插入模式
A 在当前光标所在的行的末尾进入插入模式

添加模式:

o 在当前行之后插入一个新行并进入插入模式
O 在当前行之前插入一个新行并进入插入模式

 移动指令(在命令行模式下)

向右移动

l

向右移动n个字符,nl,保证中间夹了n个字符

向左移动

h

向左移动n个字符,nh,保证中间夹了n个字符

向下移动

j

向下移动n个字符,nj

向上移动

k

向上移动n个字符,nk

移动到行首 ^ 或 0
移动到行尾

$(这里注意,行尾代表光标落在最后一个字符左边)

n$ 移动到往下n-1行的行尾

移动到指定行

G

nG 移动到指定行的行首

移动到指令列

|

n| 光标的位置代表的就是第几列

移动光标到下一个单词

w (标点符合也可以作为分割的依据)

W(要求的单词更为严格,必须以空白分割)

移动光标到上一个单词

b(标点符合也可以作为分割的依据)

B(要求的单词更为严格,必须以空白分割)

移动到屏幕顶部

H

nH 移动到屏幕的第n行

移动到屏幕中间

M

 删除指令(在命令行模式下)

向右删除n个字符 nx
向左删除n个字符 nX
删除当前行

dd

ndd 删除当前行以及后面的n行

删除光标到行尾的内容,删除之后,下一行不上移 D

撤销指令和重复指令

撤销上一次的编辑操作 u
撤销光标所在行的所有操作,使其返回上一次被保存的状态 U
重复做一次最上一条指令 .

 替换操作指令

当c,C,cc被输入后,模式会变为编辑模式。 

r替换命令和s替换命令的区别是r命令只是单独的替换,而s命令会让模式变成编辑模式

删除指定的文本并进入插入模式

c

cw 删除从光标位置开始到当前单词结尾并进入插入模式

cnw 删除从光标位置开始到n个单词结尾并进入插入模式

c6G 删除从当前行到第六行的内容,并进入插入模式

从光标位置到行尾被删除并且进入插入模式 C
删除当前整行内容并进入插入模式 cc
将光标位置的单个字符替换为输入的字符

r

ra 代表将这个字符替换为a

nr

从光标开始的n个字符被替换为你输入的字符

从光标位置开始的单个字符替换为输入的字符串 R
将光标当前位置的字符替换为输入的内容

s

s指令格式为s/旧内容/新内容/

当出现s//新内容/这种格式时,第一个/后面内容空缺,会将上一次替换操作中的旧内容作为此次的旧内容。

将光标所在当前行替换为输入内容 S
将指定的一些行向右扩展8个单位         >
将指定的一些行向左缩进8个单位         <
将当前行和下面的n-1行合并为一行         nJ

屏幕显示命令

字符串查找命令

系统从当前行向找到第一个要找的字符串,并且光标停在那里 /model+Enter键
系统从当前行向下找到第一个要找的字符串,光标停在这个字符串所在行的上面n行的位置(n不填默认为1) /model/-n+Enter键
系统从当前行向下找到第一个要找的字符串,光标停在这个字符串所在行的下面n行的位置(n不填默认为1) /model/+n+Enter键
系统从当前行向找到第一个要找的字符串,并且光标停在那里 ?model+Enter键
系统从当前行向上找到第一个要找的字符串,光标停在这个字符串所在行的上面n行的位置(n不填默认为1) ?model?-n+Enter键
系统从当前行向上找到第一个要找的字符串,光标停在这个字符串所在行的下面n行的位置(n不填默认为1) ?model?+n+Enter键
重复上一次的查找命令

n 查找方向与上一次相同

N 查找方向与上一次不同

在当前行查找指定字符 f是向后找 F是向前找

f charactor

F charactor

用于重复上一次的查找方向的查找操作
用于重复与上一次查找方向相反的查找操作 ,
给特定的字母处打上标记

m 小写字母

用  `小写字母 可以找回刚才标记的位置

全局替换指令 

 全局替换命令是一系列命令的指令集合

指令格式: g/model/command list

将所有字符串s1出现过的行显示到屏幕上 g/s1/p
将每行第一次出现的字符串s1替换为字符串s2 g/s1/s//s2/
文本中所有字符串s1被替换为字符串s2 g/s1/s//s2/g
文本中所有字符串s1被替换为字符串s2并且把替换后的行显示在屏幕上 g/s1/s//s2/gp
文本中所有字符串s1被替换为字符串s2,在替换之前会问一下是否要替换 g/s1/s//s2/gc
标记所有有字符串s0的行,并且在标记的行中将字符串s1替换为s2 g/s0/s/s1/s2/g
对不包含model的行进行替换操作 g!/model/command list
在行首添加固定长度的空格 g/^/s// /g

位置转义命令

将光标移动到第n行的行首 : n + Enter
从当前行开始向下寻找字符串 光标移动到该位置 : /model/ +Enter
从当前行开始向上寻找字符串 光标移动到该位置 : ?this? + Enter
移动到当前行的行首 : .
显示行数 : set nu
取消显示行数 : set nonu
对于当前行的相对位移 +n或-n
对整个文件的所有行进行操作 :%1,$
编辑区的最后一行 :$

 e,w,r,q转义命令

当用vim打开一个文件时,可以打开并编辑另外一个文件

e命令

当前文件的编号用%这个符号来代替,用#记录从哪个文件移出的,可以用:buffers来查看

如果想回到之前的文件,则用:b[文件编号]

在一个文件中打开另外一个文件,如果不需要系统提醒是否保存过,加上!

e filename

e! filename

保存并退出 :wq
忽略执行w命令之前所做的检查,例如,用户有个文件并没有打开它的写权限但是使用wq!就允许用户用任何方式修改该文件 :wq!
不保存直接退出 :q
强制退出 :q!

文本移动指令

将缓冲区中的内容复制到光标的下一行 p
将缓冲区中的内容复制到光标的上一行 P
复制当前行 yy
复制光标位置到单字结束的字符 yw
复制光标位置开始向后n行(包括当前行) nyy

 

 

上一篇:苍穹外卖学习笔记(二十五)


下一篇:MATLAB火焰烟雾检测系统