免费做网站收录的,上海高端网站公司,拓者室内设计吧官网,佛山狮山网站建设Linux中的所有内容以文件形式管理#xff0c;在命令行下更改文件内容#xff0c;常常会用到文本编辑器。我们首选的文本编辑器是Vim#xff0c;它是一个基于文本界面的编辑工具#xff0c;使用简单且功能强大#xff0c;更重要的是#xff0c;Vim是所有Linux发行版本的默…Linux中的所有内容以文件形式管理在命令行下更改文件内容常常会用到文本编辑器。我们首选的文本编辑器是Vim它是一个基于文本界面的编辑工具使用简单且功能强大更重要的是Vim是所有Linux发行版本的默认文本编辑器。
很多UNIX和Linux的老用户习惯称呼它为Vi, Vi是Vim的早期版本现在我们使用的VimVi improved是Vi的增强版增加了一些正则表达式的查找、多窗口的编辑等功能使得Vim对于程序开发来说更加方便。想了解Vi和Vim的区别可以在Vim命令模式下输入“:help vi_diff”就能够看到两者区别的摘要。
值得一提的是Vim是慈善软件如有赞助或评比得奖所得钱财将用于救助乌干达孤儿。软件使用是免费的使用者是否捐款赞助当然不会勉强。
1、Vim的工作模式
在使用Vim编辑文件前我们先来了解一下它的三种工作模式命令模式、输入模式和编辑模式如下图所示
1.1、命令模式
使用Vim编辑文件时默认处于命令模式。在此模式下可以使用上、下、左、右键或者k、j、h、l命令进行光标移动还可以对文件内容进行复制、粘贴、替换、删除等操作。
1.2、输入模式
在输入模式下可以对文件执行写操作类似在Windows的文档中输入内容。进入输入模式的方法是输入i、a、o等插入命令编写完成后按Esc键即可返回命令模式。
1.3、编辑模式
如果要保存、查找或者替换一些内容等就需要进入编辑模式。编辑模式的进入方法为在命令模式下按“:”键Vim窗口的左下方会出现一个“:”符号这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。
对于新手来说经常不知道自己处于什么模式。不论是自己忘了还是不小心切换了模式都可以直接按一次Esc键返回命令模式。如果你多按几次Esc键后听到了“嘀——”的声音则代表你已经处于命令模式了。
2、进入Vim
了解了Vim的工作模式后就可以愉快地使用Vim进行文件编辑了。先来看一下Vim打开文件的方法。
2.1、使用Vim打开文件
使用Vim打开文件很简单例如明哥想打开一个自己编写的文件/test/vi.test打开方法如下 [rootitxdl ~] vim /test/vi.test刚打开文件时进入的是命令模式此时文件的下方会显示文件的一些信息包括文件名、文件的总行数和字符数以及当前光标所在的位置等此时可以使用插入命令进入输入模式对文件进行编辑如下图所示
2.2、直接进入指定位置
如果想直接进入Vim编辑文件的指定行数处或者特定字符串所在行节省编辑时间例如打开/tmp/passwd.vi文件时直接进入第20行则可以这样操作 [rootitxdl ~] vim 20 /tmp/passwd.vi打开文件后直接进入“nobody”字符串所在行则可以这样操作 [rootitxdl ~]# vim /nobody /tmp/passwd.vi如果文件中有多个“nobody”字符串则会以查到的第一个为准。
3、Vim的基本应用
打开文件后接下来开始对文件进行编辑。Vim虽然是一个基于文本模式的编辑器但却提供了丰富的编辑功能。对于习惯使用图形界面的朋友来说刚开始会较难适应但是熟练后就会发现使用Vim进行编辑实际上更加快速。
3.1、插入命令
从命令模式进入输入模式进行编辑可以按下I、i、O、o、A、a等键来完成不同的键只是光标所处的位置不同而已。当进入输入模式后你会发现在Vim编辑窗口的左下角会出现“INSERT”标志这就代表我们可以执行写入操作了如图下图所示 常用的插入命令 i ——在当前光标所在位置插入随后输入的文本光标后的文本相应向右移动I ——在光标所在行的行首插入随后输入的文本行首是该行的第一个非空白字符相当于光标移动到行首再执行i命令a ——在当前光标所在位置之后插入随后输入的文本A ——在光标所在行的行尾插入随后输入的文本相当于光标移动到行尾再执行a命令o ——在光标所在行的下面插入新的一行。光标停在空行的行首等待输入文本O ——在光标所在行的上面插入新的一行。光标停在空行的行首等待输入文本注意在Linux纯字符界面中默认是不支持中文输入的。如果想要输入中文则有三种方法 1安装中文语言支持和图形界面在图形界面下输入中文使用gVimVim的图形前端。 2安装中文语言支持使用远程连接工具如PuTTY在远程连接工具中调整中文编码进行中文输入。 3倘若非要在Linux纯字符界面中输入中文则可以安装中文插件如zhcon。
3.2、光标移动命令
在进行编辑工作之前需要将光标移动到适当的位置。Vim提供了大量的光标移动命令注意这些命令需要在命令模式下执行。下面介绍一些常用的光标移动命令。
3.2.1、以字符为单位移动 上、下、左、右方向键 ——移动光标习惯使用鼠标的用户可能很自然地想到用光标来进行编辑定位但是你会发现鼠标不会给你任何反应。在 Vim中进行定位需要通过上、下、左、右方向键并且无论是命令模式还是输入模式都可以通过方向键来移动光标在编辑模式中方向键是用来查看命令历史记录的。 H、j、k、l ——移动光标外还可以在命令模式中使用h、j、k、l 4个字符控制方向分别表示向左、向下、向上、向左。在大量编辑文档时会频繁地移动光标这时使用方向键可能会比较浪费时间使用这4个键就很方便快捷。当然这同样是一件熟能生巧的事情。
3.3、使用Vim进行编辑
光标移动到指定位置后如何进行编辑操作呢Vim提供了大量的编辑命令下面介绍其中一些常用的命令。
3.3.1、查找指定字符串 /要查找的字符串 ——从光标所在行开始向下查找所需的字符串?要查找的字符串 ——从光标所在行开始向上查找所需的字符串:set ic ——查找时忽略大小写一个字符串可以是一个或者多个字母的集合。如果想在Vim中查找字符串则需要在命令模式下进行。在Vim命令模式中输入“/要查找的字符串”再按一下回车键就可以从光标所在行开始向下查找指定的字符串。如果要向上查找则只需输入“要查找的字符串”即可。例如在/etc/passwd.vi文件中查找字符串“root”则运行命令如下图所示 如果匹配的字符串有多个则可以按“n”键向下继续匹配查找按“N”键向上继续匹配查找。如果在文件中并没有找到所要查找的字符串则在文件底部会出现“Pattern not found”提示如下图所示 在查找过程中需要注意的是要查找的字符串是严格区分大小写的如查找“shenchao”和“ShenChao”会得到不同的结果。如果想忽略大小写则输入命令“:set ic”调整回来输入“:set noic”。如果在字符串中出现特殊符号则需要加上转义字符“\”。常见的特殊符号有\、*、?、^、 等。如果出现这些字符例如要查找字符串“ 10 等。如果出现这些字符例如要查找字符串“10 等。如果出现这些字符例如要查找字符串“10”则需要在命令模式中输入“/10$”。
还可以查找指定的行。例如要查找一个以root为行首的行则可以进行如下操作 /^root要查找一个以root为行尾的行则可以进行如下操作 /root$3.3.2、使用Vim进行替换 r ——替换光标所在处的字符R ——从光标所在处开始替换字符按Esc键结束小写“r”可以替换光标所在处的某个字符将光标移动到想替换的单个字符处按下“r”键然后直接输入替换的字符即可大写“R”可以从光标所在处开始替换字符输入会覆盖后面的文本内容直到按Esc键结束替换。
3.3.3、使用Vim进行删除、粘贴、复制 x ——删除光标所在字符nx ——从光标所在位置向后删除n个字符n为数字dd ——删除整行。如果之后粘贴则此命令的作用是剪切ndd ——删除多行dG ——删除从光标所在行到文件末尾的内容D ——删除从光标所在处到这行行尾的内容:起始行终止行d ——删除指定范围的行yy或Y ——复制单行nyy或nY ——复制多行p ——粘贴到当前光标所在行下P ——粘贴到当前光标所在行上如果处于命令模式下则可以按下“x”键来删除光标所在位置的单个字符快速按两下“d”键来进行整行删除如果想要删除连续多行例如想要删除10行则可以按下“10dd”可以快速删除当前光标所在行下10行。
此时被删除的内容并没有真正删除都临时放在了内存中。将光标移动到指定位置处按下“p”键就可以将刚才删除的内容又粘贴到此处。在软件开发中可能需要将连续两行进行互换就可以先将上面的一行通过“dd”键删除再将光标移动到下面通过“p”键将其重新粘贴这样就能够达到两行互相交换位置的目的。
有时候可能需要把两行进行连接。如在下面的文件中有两行现在需要使其成为一行实际上就是将两行间的换行符去掉。可以直接在命令模式中按下“J”键按下前后分别如下图所示
3.3.4、使用Vim撤销上一步操作 u ——撤销如果不小心误删除了文件内容则可以通过“u”键来撤销刚才执行的命令。如果要撤销刚才的多次操作则可以多按几次“u”键。
3.4、保存退出命令
Vim的保存和退出是在命令模式中进行的为了方便记忆只需要记住w、q、三个符号的含义即可完成保存任务。 字母“w” ——保存不退出字母“q” ——不保存退出字符“!” ——强制性操作例如在命令模式中只输入“w”字母就意味着保存但不退出如果输入“wq”就意味着保存并且退出如果输入“w!”或“wq!”就意味着强制保存或强制保存退出这种情况经常发生在对一个文件没有写权限的时候显示readonly如下图所示但如果你是文件的所有者或者root用户就可以强制执行。 其他用法如“q!”表示不保存退出保留源文件而另存为其他的文件可以用“w新文件名”如“w /tmp/shadow.vi”。
在命令模式中还可以输入“ZZ”命令退出按两次“ShiftZ”快捷键比较方便强烈推荐。此时如果对文件没有修改就是不保存退出如果对文件已经进行了一些修改就是保存后退出。