推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

Linux下vi与vim命令使用与区别

   2023-07-21 网络整理佚名1460
核心提示:在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。打开文件、保存、关闭文件(vim命令模式下使用)

[1] VI与VIM的区别

他们都是多模式编辑器。 不同的是vim是vi的升级版本。 它不仅兼容vi的所有命令,而且还具有一些新功能。

vim的这些优点主要体现在以下几个方面:

① 多级撤消

我们知道,在 vi 中,按 u 只能撤消最后一个命令,但在 vim 中可以无限次撤消。

② 易于使用

vi只能运行在unix上,而vim不仅可以运行在unix、mac等多操作系统平台上。

③ 语法高亮

vim 可以用不同的颜色突出显示你的代码。

④ 可视化操作

也就是说vim不仅可以在终端上运行,还可以在x、mac os、.

⑤ 完全兼容vi

在某些情况下,您可以将 vim 用作 vi。

vi 和 vim 都是 Linux 中的编辑器。 不同的是vim更加先进,可以看作是vi的升级版。 vi 用于文本编辑,但 vim 更适合它。

[2] VI命令 vi有3种模式 ①命令行模式(模式/普通模式)

任何时候,无论用户处于什么模式,只需按“ESC”键即可使Vi进入命令行模式。 我们在shell环境中输入启动Vi的命令(提示符为$),当我们进入编辑器时,也处于这种模式。

在这种模式下,用户可以输入各种合法的Vi命令来管理自己的文档。 此时,从键盘输入的任何字符都被解释为编辑命令。 如果输入的字符是合法的Vi命令,Vi接受用户命令后将完成相应的动作。 但需要注意的是,输入的命令不会显示在屏幕上。 如果输入的字符不是Vi的有效命令,Vi将发出警报。

② 文本输入模式(输入模式/编辑模式)

在命令模式下,输入插入命令i()、追加命令a()、打开命令o(open)、修改命令c()、替换命令r或替换命令s即可进入文本输入模式。

在此模式下,用户输入的任何字符都会被Vi保存为文件内容并显示在屏幕上。 在文本输入过程中,如果想返回命令模式,请按“ESC”键。

③末行模式(末行模式/命令行命令模式)

最后一行模式也称为 ex 模式。

Vi 和 Ex 编辑器的功能相同,两者之间的主要区别在于用户界面。

在 Vi 中,命令通常是单个键,例如 i、a、o 等; 而在 Ex 中,命令是以回车键结尾的一行文本。 Vi 有一个特殊的“转义”命令,可以访问许多面向行的 Ex 命令。

在命令模式下,用户可以按“:”键进入末行模式。 这时,Vi会在显示窗口的最后一行(通常是屏幕的最后一行)显示一个“:”,作为末行模式的提示符,等待用户输入命令。

大多数文件管理命令都是在这种模式下执行的(比如将编辑缓冲区的内容写入文件等)。 执行完最后一条命令后,Vi 自动返回到命令模式。

[3] vim命令 vim共有4种模式: 普通模式(-mode) 插入模式(-mode) 命令模式(-mode) 可视化模式(-mode) ①普通模式

vim启动后默认处于正常模式。 无论您处于哪种模式,按下该键(有时双击)都会进入正常模式。

② 插入模式

在正常模式下按i、I、a、A等键进入插入模式。

现在只需记住按 i 进入插入模式即可。 在插入模式下,按下按键时会写入相应的字符。

③命令模式

在正常模式下,按:(冒号)键进入命令模式。

在命令模式下,你可以执行一些输入并执行vim或插件提供的一些命令,就像在shell中一样。 这些指令包括设置环境、文件操作、调用函数等。

常用的命令有:q(退出)、q! (强制退出)、w(保存)、wq(保存并退出)。

④ 视觉模式

在正常模式下按 v、V、+v 可进入可视模式。

可视化模式下的操作有点像用鼠标操作。 在选择文本的时候,有一种鼠标选择的既视感,有时候还是很方便的。

打开文件、保存、关闭文件(vim命令模式下使用)

使用命令请按ESC键进入命令模式!

vim filename        //打开filename文件 
:w     	            //保存文件 
:w vpser.net       //保存至vpser.net文件 
:q                //退出编辑器,如果文件已修改请使用下面的命令 
:q!              //退出编辑器,且不保存 
:wq            //退出编辑器,且保存文件 
:x			  //退出编辑器,且保存文件 

修改:键

插入文本或行(在vim命令模式下使用,执行以下命令后进入插入模式,按ESC键退出插入模式)

a        //在当前光标位置的右边添加文本 
i       //在当前光标位置的左边添加文本 
A       //在当前行的末尾位置添加文本 
I      //在当前行的开始处添加文本(非空字符的行首) 
O      //在当前行的上面新建一行 
o     //在当前行的下面新建一行 
R     //替换(覆盖)当前光标位置及后面的若干文本 
J    //合并光标所在行及下一行为一行(依然在命令模式) 

⑤ 解决VIM下文本格式问题

保存脚本文件时使用DOS格式,在Linux中可能会出现这样的错误:/bin/sh^M:损坏的解释器:没有这样的文件或目录

使用VIM命令进入命令行模式,进行以下操作。

:set ff=unix
:wq

【4】VIM快捷键使用①删除光标当前行

在正常模式下使用 dd 命令。

其他快捷键操作参考如下:

Ctrl+u:向文件首翻半屏;
Ctrl+d:向文件尾翻半屏;
Ctrl+f:向文件尾翻一屏;
Ctrl+b:向文件首翻一屏;
Esc:从编辑模式切换到命令模式;
ZZ:命令模式下保存当前文件所做的修改后退出vi;
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
x或X:删除一个字符,x删除光标后的,而X删除光标前的;
D:删除从当前光标到光标所在行尾的全部字符;
dd:删除光标行正行内容;
ndd:删除当前行及其后n-1行;
nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:wq:在命令模式下,执行存盘退出操作;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:q:在命令模式下,执行退出vi操作;
:q!:在命令模式下,执行强制退出vi操作;
:e文件名:在命令模式下,打开并编辑指定名称的文件;
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
:set number:在命令模式下,用于在最左端显示行号;
:set nonumber:在命令模式下,用于在最左端不显示行号;

② Vim 快速替换文本

语法如下:

:[addr]s/源字符串/目的字符串/[option]

全局替换命令:

:%s/源字符串/目的字符串/g

s表示替换操作,[addr]表示搜索范围,省略时表示当前行,如下例所示:

"1,20" :表示从第1行到20行;
"%":表示整个文件,同"1,$";
". ,$" :从当前行到文件尾;

[]:表示操作类型:

g 表示全局替换; 
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);

省略时,仅替换每行中第一个匹配的字符串; 如果源字符串和目标字符串中出现特殊字符,需要使用“\”进行转义,如\t。

③ 撤消和恢复

撤消的快捷键是 u,在窗口模式下按 u 将撤消之前的操作。

重做撤消:Ctrl + r

④ 搜索并取消突出显示

在正常模式下,使用 / 将执行全局搜索并突出显示输入字符:

这时候使用n就会跳转到下一个匹配的字符。 但关闭文件重新打开后提示仍然高亮,如何取消? 在命令模式下使用:noh命令,如下:

vim显示行号

在命令行模式下(esc进入命令行模式),使用以下命令,然后回车

:set number

更多 VIM 使用参考博文:12 个 Vim 技巧

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON