linux vi/vim 编辑器学习总结

linux vi/vim 编辑器学习总结

很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统。项目部署时通常需要更改一些配置操作,比如环境地址更换,系统挂载,docker 镜像修改等,这时候我们就需要用一款编辑器来修改代码。

vi/vim

在所有的类 Unix 系统中都会内建 vi 编辑器,其他的编辑器则不一定会存在。vim 是从 vi 发展出来的一个文本编辑器,命令众多,代码补全等方便编程的功能特别丰富,使用非常广泛。

vim官网对 vim 的解释:

Vim is a highly configurable text editor for efficiently creating and changing any kind of text. It is included as "vi" with most UNIX systems and with Apple OS X.

Vim 是一个高度可配置的文本编辑器,用于有效地创建和更改任何类型的文本。它作为 “vi” 包含在大多数 UNIX 系统和 Apple OS X 中。

vi/vim 的使用方法

vim 分为三种模式:

  • 命令模式
  • 输入模式
  • 底线命令模式

linux vi/vim 编辑器学习总结

vim <filename> 命令,将进入 vim 命令模式,如果没有该文件,将新建该文件。

命令模式

启动 vi/vim 编辑器,默认进入命令模式。这时候敲击键盘被认为是命令,而不是字符。

命令模式下,可使用:

  • 复制:yy 和 nyy, yy 复制光标所在的那一行,n 表示数字,3yy 表示复制光标所在的及其向下的 3 行。
  • 粘贴:p 表示将复制的内容粘贴到光标所在的下一行。P 表示将复制的内容粘贴到光标所在的上一行。
  • 复原(撤销):u 表示撤销上一步命令,相当于 Windows 下的 ctrl + z, Mac 下的 command z
  • 重复:ctrl + r 表示重复撤销前的上一个命令, 相当于 Windows 下的 ctrl + shift + z, Mac 下的 command + shift + z
  • 删除:在一行字符中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)。
  • 行删除:dd 和 ndd, dd 删除光标所在的那一整行, ndd 删除光标所在的及其向下的 n 行。

输入模式

在命令模式下按下 i/I, 或 a/A, 或 o/O (字母 o/O) 就进入输入模式。如果是在底行命令模式下,就先按下 esc 键进入命令模式,在按下 i/I, 或 a/A, 或 o/O (字母 o/O) 就进入输入模式。

输入模式中,可使用:

  • 字符按键,Shift + 字符按键组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,(或 fn + BACK SPACE)删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END (或 fn + 左方向键/fn + 右方向键),移动光标到行首/行尾
  • Page Up/Page Down (或 fn + 上方向键/fn + 下方向键),上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。如果是在输入模式下,就先按下 esc 键进入命令模式,在按下:(英文冒号)进入底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。如:

  • w 保存文件
  • q 退出程序
  • 0 数字 0, 将光标移动到该文件的第一个字符处
  • $ 将光标移动到该文件的最后一行处
  • ESC 键可随时退出底线命令模式,回到命令行模式

vi/vim 的使用实例

下面使用 Mac 的 iTerm2 来演示和说明。

准备

首先新建 “vim编辑器学习总结”文件夹,然后进入该文件夹 mkdir vim编辑器学习总结 && cd vim编辑器学习总结

然后新建文件 “test.txt” touch test.txt,然后使用 vim 编辑器打开该文件,vim test.txt

也可以直接使用 vim 编辑器打开一个文件,如果该文件不存在,将会创建它。

下面使用一个事先准备好的文件docker-compose.yml来演示命令。

底行命令模式实例

这时候输入 : 就进入底行命令模式,输入 $ 就到了最后一行。

linux vi/vim 编辑器学习总结

命令模式实例

然后输入 esc 便进入命令模式,这时候我想要复制当前行和下面一行

ports:
- 58000:8000

再粘贴到当前行的下面,于是就出现了

ports:
ports:
- 58000:8000
- 58000:8000

linux vi/vim 编辑器学习总结

这时候敲击 u 就撤销了上一步粘贴,敲击 ctrl + r 就复原了上一步粘贴。 这时候敲击 i 便进入了输入模式

输入模式实例

在输入模式下,可以输入除 esc 以外的任意字符。

linux vi/vim 编辑器学习总结

可以在输入模式下输入任意字符,输入 esc 就会退出输入模式,进入命令模式,输入 :wq! 就会强制保存然后退出 vim 编辑器。

上一篇:受限波兹曼机导论Introduction to Restricted Boltzmann Machines


下一篇:MVCC 多版本并发控制