Linux之vi命令

Linux之vi命令,第1张

vi profile

返回

:q 退出

:wq或者:x或者shift+zz 保存并退出

:q! 不保存并退出

:w 保存

:w! 强制保存

编辑到输入模式:

i 在当前光标前面输入

I 在当前光标所在行的行首,转换为输入模式

a 在当前光标后面输入

A 在当前光标所在行的行尾,转换为输入模式

o 在当前光标所在行的下方,新建一行,并转为输入模式

O 在当前光标所在行的上方,新建一行,并转为输入模式

1、 移动光标

字符:方向键上下左右或者键盘kjhl(上下左右)

单词:w移至下一个单词的词首;e跳至当前或下一个单词的词尾;b跳至当前或前一个单词的词首

行内:0绝对行首;^行首的第一个非空白字符;$绝对行尾

行间:G文章末尾;3G第3行;gg文章开头

翻屏:ctrl f往后翻;Ctrl b往前翻

2、 删除、替换单个字符

x删除光标位置字符;3x删除光标开始3个字符;r替换光标位置字符

dw删除一个单词;4dw删除光标开始的4个单词;dd删除光标所在行;5dd删除光标开始的5行

3、复制粘贴剪切

yw复制一个单词,p在该行粘贴单词;yy复制整行,p在该行下方粘贴整行

dd剪切整行,p再粘贴整行;dw剪切一个单词,p再粘贴一个单词

4、 撤销&重做

u:撤销;ctrl+r:重做撤销的 *** 作;重复上一步的 *** 作假设先dd,再,会再执行dd命令

1、 set设置

set nu

set nonu

set readonly #设置只读文件,不能修改,只在当前环境有效,退出文件,再次打开,这个只读就无效了

set noreadonly #取消只读

2、 /查找

/after查找文档中的after可以找到所有的after,n向下翻,N向上翻

:/after查找文档中的after所在行可以找到所有的after,n向下翻,N向上翻

3、!执行命令

比如:查找root目录

:!ls /root/

4、 查找并替换

格式

:查找范围s/查找的词/要替换的词/

或者:查找范围s#查找的词#要替换的词#

或者:查找范围s%查找的词%要替换的词%,

即分隔符可以是/、#、%

其中, 查找范围 包括当前光标行;$末尾行;%全文;g一行内全部替换;i忽略大小写

比如 :,$s/after/before/ 表示在当前光标行到末尾$这个范围内,将after替换为before, 但是如果一行有多个after的话,只会把第一个after替换掉

比如 :%s/after/before/ 表示在全文,将after替换为before,但是如果一行有多个after的话,只会把第一个after替换掉。

比如 :%s/after/before/g ,表示在全文,将after替换为before,但是 如果一行有多个after的话,会把该行所有after替换掉,因为在命令里面加了g

比如 :%s/after/before/gi ,表示在全文,将after替换为before,且忽略大小写并替换一行内所有after。

比如 :%d或者dG ,表示删除全文

比如 :1,$-4d ,表示删除第一行到倒数第5行的数据

比如 :1,4y ,表示复制1到4行,再按p可粘贴这4行

vim可以分为三种状态,分别是 命令行模式(command mode) 、 输入模式(Insert mode) 和 底行模式(last line mode) ,这 3 种工作模式可随意切换,如下图所示。

使用vim编辑文件时,默认处于命令行模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等 *** 作。

下图所示是vim处于命令行模式的状态示意图。

在输入模式下,vim可以对文件执行写 *** 作,类似于在Windows系统的文档中输入内容。

使vim进行输入模式的方式是在命令模式状态下输入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具体功能下表所示),当编辑文件完成后按 esc 键即可返回命令模式。

下图所示为vim处于输入模式模式下的示意图。

底行模式用于对文件中的指定内容执行保存、查找或替换等 *** 作。

使vim切换到底行模式的方法是在 命令行模式 状态下按 : 键(注意是英文符号),此时vim窗口的左下方出现一个 : 符号,这是就可以输入相关指令进行 *** 作了。

指令执行后vim会自动返回命令行模式。如想直接返回命令行模式,按 esc 即可。

下图所示为vim进入底行模式后的状态。

对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 esc 键返回命令行模式。如果你多按几次 esc 键后听到"嘀————"的声音,则代表你已经处于命令行模式了。

打开文件

打开文件时光标处于文件尾部

打开文件时,光标定位到第几行

字符移动

这些移动键都可以加上数字(5h:向左移动5个字符格)

单词移动

行内跳转

行间移动

在底行模式下,直接给出行号,实现跳转

用法:起始地址,结束地址 s @要替换内容@替换后内容@gi(@分隔符)

例 :1,$s/a/A/g 把文件中全部的a换替换成A,全局替换

显示取消行号

设定自动缩进(写脚本时)

查找到的文本高亮显示

语法高亮

/etc/vimrc :全局配置文件,永久有效

~/vimrc :个人配置文件,每个用户的家目录中,若不存在,手动创建

对于第一次用vim的童鞋,有几点需要提醒一下:

1、tab:命令或路径等的补全键,也是Linux用的最多的一个快捷键;

2、ctrl+a:光标迅速回到行首;

3、ctrl+e:光标迅速回到行尾;

4、ctrl+f:光标向右移动一个字符;

5、ctrl+b:光标向左移动一个字符;

6、ctrl+insert:复制命令行内容(mac系统不能使用);

7、shift+insert //粘贴命令行内容(mac系统不能使用);

8、ctrl+k //剪切(删除)光标处到行尾的所有字符;

9、ctrl+u //剪切(删除)光标处到行首的所有字符;

10、ctrl+w //剪切(删除)光标前的一个字符;

11、ctrl+y //粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符;

12、ctrl+c //中断终端正在执行的任务并开启一个新的一行;

13、ctrl+h //删除光标前的一个字符(相当于退格键);

14、ctrl+d //退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户;

15、ctrl+r //搜索命令行使用过的历史命令记录;

16、ctrl+g //从ctrl+r的搜索历史命令模式中退出;

17、ctrl+l //清楚屏幕所有的内容,并开启一个新的一行;

18、ctrl+s //锁定终端,使之任何人无法输入;

19、ctrl+q //解锁ctrl+s的锁定状态;

20、ctrl+z //暂停在终端运行的任务,使用"fg"命令可以使暂停恢复;

21、!! //执行上一条命令;

22、!pw //这是一个例子,是执行以pw开头的命令,这里的pw可以换成任何已经执行过的字符;

23、!pw:p //这是一个例子,是仅打印以pw开头的命令,但不执行,最后的那个“p”是命令固定字符;

24、!num //执行历史命令列表的第num条命令,num代指任何数字(前提是历史命令里必须存在);

25、!$ //代指上一条命令的最后一个参数,该命令常用于shell脚本中

26、esc+ //注意那个"“ 意思是获取上一条命令的(以空格为分隔符)最后的部分;

27、esc+b //移动到当前单词的开头;

28、esc+f //移动到当前单词的结尾;

进入vi的命令vi filename :打开或新建文件

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

一。命令模式1光标移动

k或ctrl+p 上

j或Ctrl+n 下

h或Backspace 左

l或space 右

0 行首

$ 行末

G或GG 到最后一行

gg 到第一行

Enter :光标下移一行

b或B 光标左移一个字至字首

e或E 光标右移一个字j至字尾

nG 光标移至第n行首

n+ 光标下移n行

n- 光标上移n行(按-时不需要按shift)

H 光标移至屏幕顶行

M 光标移至屏幕中间行

L 光标移至屏幕最后行

2替换

r 替换 eg: rt , 10 r 03删除

x 以字符删除

nx 删除n个字符

dd 行删除

ndd 删除n行

dG 删除光标所在位置以下的内容(包括光标所在的行)

u 撤消

J 将光标所在行和光标以下的行合并4复制粘贴

yy复制

nyy

p粘贴到光标下边

P粘贴到光标上边5退出

ZZ保存退出

ZQ不保存退出6查找

/ 正向查找

反向查找

n 继续查找

二。编辑模式(插入模式)i 左插入

a 右插入

o 下起一行插入I 行首插入

A 行末插入

O 上起一行插入

三。底行模式(末行模式)1读取文件

r 把另外一个文件读取到当前文件中来 eg: r /etc/passwd2替换

s 替换 语法: n1,n2s//$/gc3保存退出

n1,n2 w 路径 将n1到n2行另存为

w 保存

wq 保存退出

q 不保存退出

wq! 强制性保存退出set number 显示行号

set nonumber

set ignorance 在搜索中忽略大小写vi参数

-o 横屏

-O 竖屏

现在在redhat的linux系统中已经不再用vi了,而是用vim,下面是vi和vim的区别,但是vim完全兼容vi

Vi与Vim的区别

VIM 是 Unix 世界里极为普遍的全屏幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体。熟悉 DOS 下的文书处理後,也许会感到 VIM 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外的软体。所以,学习 VIM 的基本 *** 作还是有好处,让你在各个不同的机器上得心应手。vi是unix的标准配置,一般默认都安装了;而vim是vi的一个提升版本,当然现在已经独立于vi,而且功能比vi要强大。 简单点来说,它们都是多模式编辑器,

不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,

而且还有一些新的特性在里面。

vim的这些优势主要体现在以下几个方面:1、多级撤消

我们知道在vi里,按u只能撤消上次命令,而在vim里可以无限制的撤消。2、易用性

vi只能运行于unix类中,而vim不仅可以运行于unix,windows ,mac等多 *** 作平台。3、语法加亮

vim可以用不同的颜色来加亮你的代码。4、可视化 *** 作

就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。5、对vi的完全兼容

某些情况下,你可以把vim当成vi来使用。

快捷键

Tab:命令补全

Ctrl+c:结束程序,但不终止终端

Ctrl+a:将光标移至输入行首,相当于Home键

Ctrl+e:将光标移至输入行末,相当于End键

Ctrl+k:删除从光标所在位置到行末

Ctrl+u:删除从光标所在位置到行首

Ctrl+b:光标左移一个字母

Ctrl+h:删除光标前一个字符,同 backspace 键相同

Ctrl+w:移除光标前的一个单词

Ctrl+t:交换光标位置前的两个字符

Ctrl+y:粘贴或者恢复上次的删除

Ctrl+d:删除光标所在字母,如果当前命令行中没有任何字母命令,则退出当前shell

Ctrl+f:光标右移

Alt+Backspace:向前删除一个单词

Shift+PgUp:将终端显示向上滚动

Shift+PgDn:将终端显示向下滚动

Ctrl+l:清屏

Ctrl+z: 将当前程序移到后台执行,如同输入的命令后面加&

Ctrl+r: 查询最近执行过的命令

快速执行过往的命令

执行上一条命令

将上一条命令中出现的”foo”改为”bar”并执行

执行最近第3条命令

执行最近一次以”net”开头的命令

如果你忘了最近一次”net”开头的命令是什么,你可以用下面的方法查询

该 *** 作只打印命令,但不执行。

以管理员权限执行,你可以加上”sudo”

使用上条命令的最后一个参数

这条命令的效果等同于cd /home/usr。如果要使用第一个参数,就改为!^,比如上例中vi !^就等同于vi /atxt。

使用特定命令的最后一个参数

表示搜索最近以”apt”开头的命令的最后一个参数

让上述表达式和参数符号在执行前显示原形

执行完这个命令后,在输入上述表达式和参数符号后,按一下空格,这些表达式和符号就立即变成它们所代表的 历史 命令和参数。可以将其放到”bashrc”中。

快速复制为备份文件

将”/etc/hosts”文件在同一目录下复制一份副本,并命名为”/etc/hosts_bak”。

回到上一个目录

Shell常用通配符

以上就是关于Linux之vi命令全部的内容,包括:Linux之vi命令、Linux下vim编辑器命令大全、linux 几个极其重要快捷键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9288475.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存