学向勤中得,萤窗万卷书。这篇文章主要讲述Linux vi/vim相关的知识,希望能为你提供帮助。
概述??Linux vi/vim??
【Linux vi/vim】??Vim不常见但是很实用的命令技巧??
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (??http://www.vim.org??) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim 键盘图
文章图片
??Vim快捷键键位图??
vi/vim 的使用基本上 vi/vim 共分为三种模式,分别是一般模式、编辑模式与指令列命令模式。 这三种模式的作用分别是:
- 一般模式:
以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
- 编辑模式:
在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
- 指令列命令模式:
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
文章图片
vi/vim 使用实例使用 vi/vim 进入一般模式
如果你想要使用 vi 来建立一个名为 test.txt 的文件时,你可以这样做:
[root@www ~]# vi test.txt
直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!
文章图片
?按下 i 进入编辑模式,开始编辑文字?
在一般模式之中,只要按下 i, o, a 等字符就可以进入编辑模式了!
在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
文章图片
?按下 [ESC] 按钮回到一般模式?
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 [Esc] 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
?在一般模式中按下 :wq 储存后离开 vi?
OK,我们要存档了,存盘并离开的指令很简单,输入『:wq』即可保存离开!
文章图片
OK! 这样我们就成功创建了一个 test.txt 的文件。
vi/vim 按键说明除了上面简易范例的 i, [Esc], :wq 之外,其实 vim 还有非常多的按键可以使用。
一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代等
文章图片
文章图片
文章图片
文章图片
文章图片
一般模式切换到编辑模式的可用的按钮说明
文章图片
一般模式切换到指令列模式的可用的按钮说明
文章图片
特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可
推荐阅读
- Linux环境下 RabbitMQ 的下载与安装
- Linux yum 命令
- docker镜像创建 2 ——实战(SSHDLNMP)
- Linux(程序设计):42---UDP网络编程(单播)
- ZooKeeper客户端源码——向服务端建立连接+会话建立+心跳保持长连接
- Linux系统编程应用 V4L2编程基础
- Linux(程序设计):02---make与Makefile的设计与应用
- Linux(程序设计):05---gcc的基本用法
- Linux(程序设计):06---动态函数库与静态函数库(ldconfigldd命令与/etc/ld.so.conf)