Linux基本命令 vim命令

vim的三种工作模式:命令模式、输入模式和编辑模式的相互转换,如图

命令模式

使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者 k、j、h、l 命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。

输入模式

在输入模式下可以对文件执行写操作。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。

编辑模式

如果要保存、查找或者替换一些内容等,就需要进入编辑模式。编辑模式的进入方法为:在命令模式下按" :"键,Vim 窗口的左下方会出现一个" :"符号后,这时就可以输入相关的指令进行操作了。操作完按Enter键执行,指令执行后会自动返回命令模式。

Vim 三种命令模式的操作

使用Vim打开文件

为了避免误操作我们将/etc下的profile复制到/tmp下进行操作,命令如下:

[[email protected] /]# cp /etc/profile  /tmp/profile.vim

然后使用vim 进入profile文件的命令模式

直接进入指定位置

说明:如果想直接进入 Vim 编辑文件的指定行数处或者特定字符串所在行,节省编辑时间,例如,打开 /tmp/passwd.vi 文件时直接进入第 20 行,则可以这样操作:

[[email protected] ~]# vim +20 /tmp/passwd.vi

打开文件后,直接进入"nobody"字符串所在行,则可以这样操作:

[[email protected] ~]#vim +/nobody /tmp/passwd.vi

如果文件中有多个"nobody"字符串,则会以査到的第一个为准。

如果只是打开文件则如下操作

[[email protected] tmp]# vim profile.vim

打开文件后,接下来开始对文件进行编辑。

命令模式下的操作

插入命令

从命令模式进入输入模式进行编辑,可以按下 I、i、A、a 、O、o、等键来完成,不同的键只是光标所处的位置不同而已。当进入输入模式后,在 Vim 编辑窗口的左下角会出现"INSERT"标志,这就代表我们可行写入操作了

说明:在vim中光标是停留在字符上的,例如在光标后面插入就是指在光标所在的字符的后面插入;

常用的插入命令:

  • i:在当前光标所在位置插入输入的文本,光标后的文本相应向右移动
  • I:在光标所在行的行首插入输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
  • a:在当前光标所在位置之后插入输入的文本
  • A:在光标所在行的行尾插入输入的文本,相当于光标移动到行尾再执行 a 命令
  • o:在光标所在行的下面插入新的一行。光标停在空的行首,等待输入文本
  • O:在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本

光标移动命令

在由命令模式进行入编辑模式之前,需要将光标移动到适当的位置时,就会使用Vim 提供的大量的光标移动命令,注意这些命令需要在命令模式下执行。

以字符为单位移动

在Vim中进行定位需要通过上、下、左、右方向键,并且无论是命令模式还是输入模式,都可以通过方向键来移动光标(在编辑模式中,方向键是用来査看命令历史记录的)。

以单词为单位移动

有时候需要迅速进入一行中的某个位置,如果能使光标一次移动一个单词就会非常方便。可以在命令模式中使用"W"命令来使光标向后跳到下一个单词的单词首,或者使用"b"命令使光标向前跳到上一个单词的单词首,还可以使用"e"命令使光标跳到下一个单词的单词尾,即:

  • w:移动光标到下一个单词的单词首
  • b:移动光标到上一个单词的单词首
  • e:移动光标到下一个单词的单词尾

移动到行尾或者行首

可以使用"$"命令将光标移至行尾,或者使用"0"或"^"命令将光标移至行首。其实,对于 $ 命令来说,可以使用诸如"n$"之类的命令来将光标移至当前光标所在行的之后 n 行的行尾(n 为数字);对于"0"命令来说却不可以,但可以用"n^"。

移动到一行的指定字符处(f 命令)

如果在一行中需要将光标移动到当前行的某个特定字符处,则可以使用 f 命令。

例如,某行为"you can you up, no can no bb",现在需要将光标移动到字符 p 处,则可以使用"fp"命令,这样光标就会迅速定位到字符 p 处。f 命令有一个使用条件,即光标需在指定字符前。

移动到匹配的括号处(%命令)

在使用 Vim 进行编辑时经常会为将光标移动到与一个"("匹配的")"(对于 [] 和 {} 也是一样的)处而感到头疼。其实在 Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是"%"。

比如,在/tmp/profile.vim文件中,想迅速地将光标定位到与第 49 行的"{"相对应的"}"处,则可以将光标先定位在"{"处,然后再使用"%"命令,使之定位在"}"处,如图 所示。

移动到指定行处(nG 或 :n 命令)

可以直接在命令模式中输入"nG"(n 为数字,G 为大写)或":n"(在编辑模式中输入数字)命令将光标快速地定位到指定行的行首。这种方法对快速移动光标非常有效。

査找指定字符串

一个字符串可以是一个或者多个字母的集合。如果想在 Vim 中査找字符串,则需要在命令模式下进行。在 Vim 命令模式中输入"/ 要査找的字符串",再按一下回车键,就可以从光标所在行开始向下査找指定的字符串。如果要向上査找,则只需输入"?要査找的字符串"即可。

例如,在 /tmp/profile.vim 文件中査找字符串"Path",则运行命令如图 所示。

如果匹配的字符串有多个,则可以按"n"键向下继续匹配査找,按"N"键向上继续匹配査找。如果在文件中并没有找到所要査找的字符串,则在文件底部会出现"Pattern not found"提示.

在査找过程中需要注意的是,要査找的字符串是严格区分大小写的,如査找"shenchao"和"ShenChao"会得到不同的结果。如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"。如果在字符串中出现特殊符号,则需要加上转义字符"\"。常见的特殊符号有 \、*、?、\ $ 等。如果出现这些字符,例如,要査找字符串"10$",则需要在命令模式中输入"/10\$"。

还可以查找指定的行。例如,要査找一个以Path 为行首的行,则可以进行如下操作:

/^Path

要査找一个以 Path 为行尾的行,则可以进行如下操作:

/Path$

使用Vim进行替换

小写"r"可以替换光标所在处的某个字符,将光标移动到想替换的单个字符处,按下"r"键,然后直接输入替换的字符即可。
大写"R"可以从光标所在处开始替换字符,输入会覆盖后面的文本内容,直到按 Esc 键结束。

按下"R"键替换后,Vim 编辑文件左下角会显示"REPLACE",进入替换状态。直到按 Esc 键才会退出替换;否则将一直处于替换状态。

批量替换格式如下:

  • 替换范围内的字符串::替换起始处,替换结束处s/源字符串/替换的字符串/g。
  • 替换整篇文档的字符串::%s/源字符串/替换的字符串/g(如果不加g,则只替换每行第一个找到的字符串)。

例如,要将某文件中所有的"root"替换为"liudehua",则有两种输入命令,分别为:

:1, $s/root/liudehua/g 或:  %s/root/liudehua/g

上述命令是在编辑模式下操作的,表示的是从第一行到最后一行,即全文査找"root",然后替换成"liudehua"。

如果刚才的命令变成:10,20 s/root/liudehua/g,则只替换从第 10 行到第 20 行的"root"。

使用 Vim 进行删除、粘贴、复制

如果处于命令模式下,则可以按下"x"键来删除光标所在位置的单个字符;快速按两下"d"键来进行整行删除;如果想要删除连续多行,例如,想要删除 10 行,则可按下"10dd",可以快速删除当前光标所在行下 10 行。

此时被删除的内容并没有真正删除,都临时放在了内存中。将光标移动到指定位置处,按下"p"键,就可以将刚才删除的内容又粘贴到此处。在软件开发中可能需要将连续两行进行互换,就可以将上面的一行过"dd"键删除,再将光标移动到下面,通过"p"键将其重新粘贴,这样就能够达到两行互换位置的目的。

"dG"键可以删除从光标所在行一直到文件末尾的全部内容,而"D"键可以删除从光标所在处到这行行尾的内容。如果要删除指定范围的行,则可以用":起始行,终止行d"。如删除第 1~3 行,则输入":1, 3d",会提示"3 fewer lines"。

还有"yy"键来复制单行,或者通过在前面加上数字来复制当前光标所在行下的多行。

有时候可能需要把两行进行连接。如在下面的文件中有两行,现在需要使其成为一行,实际上就是将两行间的换行符去掉。可以直接在命令模式中按下"J"键,按下前后如图 所示。


图 7 按下"J"键前后

使用Vim撤销上一步操作

如果不小心误删除了文件内容,则可以通过"u"键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次"u"键。

保存退出命令

估计前面一大堆的操作已经让你有些力不从心了,其实,这还只是总结出来的常用部分,不过对于曰常使用基本足够了,不用死记硬背,只需多练习就能掌握。

Vim 的保存和退出是在命令模式中进行的,为了方便记忆,只需要记住 w、q、!三个符号的含义即可完成任务:

  • 字母"w":保存不退出;
  • 字母"q":不保存退出;
  • 字符"!":强制性操作;

例如,在命令模式中只输入"W"字母,就意味着保存但不退出;如果输入"wq"就意味着保存并且退出;如果输入"w!"或"wq!"就意味着强制保存或强制保存退出,这种情况经常发生在对文件没有写权限的时候(显示 readonly,如图 8 所示),但如果你是文件的所有者或者 root 用户,就可以强制执行。

其他用法,如"q!"表示不保存退出;保留源文件,而另存为其他的文件,可以用"w新文件名",如"w /tmp/shadow.vi"。

在命令模式中,还可以输入"ZZ"命令退出,按两次"Shift+Z"快捷键方便,笔者强烈推荐。此时如果对文件没有修改,就是不保存退出;如果对文件已经进行了修改,就是保存后退出

原文地址:https://www.cnblogs.com/lizhouwei/p/9938412.html

时间: 2024-10-10 02:57:26

Linux基本命令 vim命令的相关文章

linux下vim命令汇总

一. 进入vi的命令 vi filename : 打开或新建文件,并将光标置于第一行首 vi +n filename : 打开文件,并将光标置于第n行首 vi + filename : 打开文件,并将光标置于最后一行首 vi +/xxx filename:打开文件,并将光标置于第一个与xxx匹配的串处 vi -r filename : 在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 二. 移动光标类命令 h :

linux 的vim命令详解

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器x q     退出记录模式 @x     播放记录在x寄存器中的宏命令 稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模 式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次.这个在文本的批处理中是非常有用的. 同时编辑多个文件 在vim众多

linux下vim命令详解

非常详细的介绍linux中vim的操作命令. 高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器x q     退出记录模式 @x     播放记录在x寄存器中的宏命令 稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模 式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次.这个在文本的批处理中

linux中用vim命令修改.tar.gz包和.zip包命令的内容

在实际生产环境中将程序打包部署到linux上或者在linux上更新程序时,很多时候都要修改.zip包或者.tar.gz包中的配置文件的内容,如果在本机和linux上进行包程序拖动然后再进行改动那就显得非常麻烦.linux中的vim命令可以非常方便的修改.tar.gz或者.zip包中的内容.  1.用vim命令修改 apache-tomcat-7.0.82.tar.gz中server.xml中的tomcat默认端口号. 1)将apahce-tomcat-7.0.82.tar.gz进行备份(mv移动

Linux基本命令 网络命令

网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看 linux 服务器 ip 地址,管理服务器网络配置,通过 telnet 和 ethernet 建立与 linux 之间的网络链接,查看 linux 的服务器信息等.下面让我们看看在 Linux 下的网络和监控命令的使用. 1. hostname hostname 没有选项,显示主

Linux学习-VIM命令编辑

VIM命令编辑 普通模式 vim + 文件 进入时就是正常模式 ESC 按 ESC 可回到正常模式 i 进入编辑模式,末行提示"插入",可插入文本 I 或 shift + i 进入编辑模式,光标停在当前行开头 a 进入编辑模式,光标会停留在前一次光标的下一个位置 A 进入编辑模式,光标停留在当前行的结尾 o 进入编辑模式,向下插入一行,光标停在开头 O 或 shift + o 进入编辑模式,向上插入一行,光标停在开头 hjkl 光标上左右下移动 p 粘贴,向下插入一行并粘贴 yy 复制

linux系统vim命令解析

控制台版本的vim随ubuntu一起发行,因此没必要安装. 然而,如果您更喜欢GUI界面下的vim的话,请从新立得安装vim-gtk软件包或在终端中输入:sudo apt-get install vim-gtk Vim 需要学习很多东西.然而,如果您熟悉了vim的话,您可以利用vim的高级特征非常熟练的操作文本. 您可以在终端中输入vim来启动控制台模式下的vim,或输入gvim 来启动图形模式下的vim. 输入之后会出现带vim信息的一个空白屏幕.然而,在该状态下输入任何文本都会失败!因此下面

Linux下vim命令

转载: 高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次.这个在文本的批处理中是非常有用的.同时编辑多个文件在vim众多的插件

Linux 下vim命令详解

原博文:https://www.cnblogs.com/zknublx/p/6058679.html 高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx                   开始记录宏,并将结果存入寄存器xq                      退出记录模式@x                   播放记录在x寄存器中的宏命令:tabe fn            在一个新的标签页中编辑文件fngt