all
You must replace the baseURL in hugo.toml file when deploying, you can manage this announcement from the params.toml file.

Linux-Vim 编辑器

内容列表

在 Linux 这样的命令行操作系统中,必须有一款功能强大的编辑器支持我们快速完成文本编辑,这就是 Vi 编辑器;通过对其加强和升级,Vim 编辑器比前者更为强大,拥有更多的功能和颜色高亮的特性,是程序员在 Linux 下编码的利器。

Vim

Vim 是基于 Linux 下 Vi 编辑器的升级版,经过多年来的不断更新,功能也越来越强大,Vim 除过具备常用文本编辑器的编辑操作以及颜色高亮特性外,还支持自动补全、多行批量操作、指定跳转等等功能,其中代码颜色高亮特性更利于我们在命令行中进行信息的阅览和查看。而且,Vim 支持大多数操作系统,只是我们经常在 Linux 下使用它而已。当然,在 Linux 下还有一款很著名的编辑器 Emacs 。

Vim 太过强大,导致学习曲线也是非常陡峭的,不过作为一个工具,我们首先只要掌握它的基本操作就行了,至于其他功能待我们在使用过程中去发掘就行了。首先,我们应该知道 Vim 有三种模式,即命令模式插入模式EX 模式

  • 命令模式

    此模式是 Vim 的默认模式,我们可以做一些非输入操作,例如删除、复制等等,在此模式下可以进入插入模式和 EX 模式。

  • 插入模式

    此模式就是编辑模式,我们主要进行输入操作。

  • EX 模式

    此模式则是当我们完成编辑后,可以进行退出、保存等操作。

常用命令

接下来,就介绍一些常用的命令,通过这些命令我们可以很方便的快速完成大多数常用操作。

模式切换

# 命令模式进入插入模式
i  // 在当前字符前开始编辑
a  // 在当前字符后开始编辑
I  // 在当前行首开始编辑(Shift + I ,或者开启大写)
A  // 在当前行尾开始编辑(Shift + A ,或者开启大写)
o  // 在当前行下添加新行开始编辑
O  // 在当前行上添加新行开始编辑(Shift + O ,或者开启大写)

# 命令模式进入EX模式
:  // (Shift + ;)

# 插入模式或EX模式返回到命令模式
Esc  // 至少按一次 Esc 即可返回命令模式

命令模式

命令模式是 Vim 的核心模式,大多数强大的功能命令都需要在此模式下完成,常用的命令则有复制、删除、粘贴、移动等等。而且,只有在命令模式下才能进入插入模式或者 EX 模式。

移动光标

h  // 光标左移
j  // 光标下移
k  // 光标上移
l  // 光标右移

fx  // 移动光标到当前行的下一个 x(任意字母)处(; 重复上一个f命令)
Fx  // 移动光标到当前行的上一个 x(任意字母)处(; 重复上一个F命令)
tx  // 移动光标到当前行的下一个 x(任意字母)左边(; 重复上一个t命令)
Tx  // 移动光标到当前行的上一个 x(任意字母)左边(; 重复上一个T命令)


w  // 光标后移一个单词到词首(W 也行)
e  // 光标后移一个单词到词尾(E 也行)
b  // 光标前移一个单词到词首(B 也行)

*  // 向下匹配当前光标所在字符串
#  // 向上匹配当前光标所在字符串

^  // 光标移动到行首(数字 0 也行)
$  // 光标移动到行尾

gg  // 光标移动到文件首行行首(ngg 第n行行首)
G   // 光标移动到文件末行行首(nG 第n行行首)(Shift + G ,或者开启大写)

`.  // 光标返回到上次编辑的位置
`a  // 光标移动到书签a处

%  // 光标在 ()、[]、{} 等符号之间左右移动

H  // 光标移动到当前屏顶端行首
M  // 光标移动到当前屏中部行首
L  // 光标移动到当前屏底部行首

Ctrl + F  // 向下移动一屏
Ctrl + D  // 向下滚动半屏
Ctrl + B  // 向上滚动一屏
Ctrl + U  // 向上滚动半屏

复制、粘贴、剪切/删除

# 复制
yy  // 复制光标所在整行
nyy // 复制光标所在行开始向下 n 行,例如 2yy

# 粘贴
p   // 光标所在行下方添加一行并粘贴剪贴板或该行
np  // 光标所在行下方添加 n 行并粘贴剪贴板或该行,例如 2p
P   // 光标所在行上方添加一行并粘贴剪贴板或该行
nP  // 光标所在行上方添加 n 行并粘贴剪贴板或该行,例如 2P

# 删除/剪切
dd  // 删除/剪切光标所在整行,D 亦可
ndd // 删除/剪切光标所在行开始向下 n 行,nD 亦可,例如 2dd

dgg // 光标所在行到文档开头之间全部删除/剪切
dG  // 光标所在行到文档结尾之间全部删除/剪切

dngg    // 光标所在行到第 n 行之间全部删除/剪切,dnG 亦可,例如 d2gg

d+^ // 光标所在字符到行首之间全部删除/剪切
d+$ // 光标所在字符到行尾之间全部删除/剪切,D 亦可

dw  // 删除光标所在处一个单词、符号

x   // 删除光标所在字符
nx  // 删除光标所在字符开始向后 n 个字符,例如 2x
nX  // 删除光标所在字符开始向前 n 个字符,例如 2X

撤销、恢复

u   // 撤销

Ctrl+r   // 恢复

插入模式

插入模式其实就是我们所说的编辑模式,输入模式,进行字符输入操作。在该模式下,可以按 Esc 即可退回到命令模式。

EX 模式

EX 模式可以在我们编辑完之后,进行一些保存、退出操作;也可以在我们编辑中途进行一些额外的操作。

:w  // 保存当前修改
:q  // 退出
:q!  // 强制退出,不保存修改
:x  // 保存并退出(等价 :wq)
:set nu // 显示行号(全写 :set_number)
:set nonu // 隐藏行号(全写 :set_nonumber)
:! [命令]  // 执行一个命令并显示结果
:sh  // 切换到命令行,使用 Ctrl+D 切换回 vim

配置

comments powered by Disqus

相关

Web 字体加载对 DOM 位置的影响

由于公司的业务会用到自己设计师定制的 Web 字体,所以一般在组件开发过程中会利用 CSS 引用该字体(@font-face),前段时间发现一个线上问题:在部分 iOS 机型上,DOM 元素的位置发生了错位。

了解更多

Web 前端性能优化:核心概念与指标

说到 Web 的性能优化,可能很多时候我们采取了一些措施,看到了肉眼可见的改进,如果我们可以对其进行测量,确定我们改进的效率(百分比)是不是会更有意义?换句话说,如果我们了解性能瓶颈可能发生的位置,衡量用户体验好坏的指标,做到实时追踪性能变化,我们是不是可以更迅速的采取优化措施?在应用上线前,我们就可以做一些低成本而有高收益的优化工作,进一步提升用户体验。

了解更多

Linux-基础

Linux 是在做一些较为底层的开发工作时的必要开发环境,了解 Linux 也对操作系统概念的理解有很大的帮助,这篇文章是对 Linux 的一些基础概念的阐述。

了解更多