【Vim】常用总结 (3)

global命令实际上是分成两步执行:首先扫描[range]指定范围内的所有行,给匹配{pattern}的行打上标记;然后依次对打有标记的行执行{command}命令,如果被标记的行在对之前匹配行的命令操作中被删除、移动或合并,则其标记自动消失,而不对该行执行{command}命令。{command}可以是一个ex命令,也可以是用|分隔的多个ex命令,这样我们就可以对被标记行,或从标记行寻址到的行进行多种不同的操作。

全局命令执行步骤:

扫描[range]指定范围内的所有行,给匹配{pattern}的行打上标记;

依次对打有标记的行执行{command}命令,如果被标记的行在对之前匹配行的命令操作中被删除、移动或合并,则其标记自动消失,而不对该行执行{command}命令。

全局命令(The Global Command)

Vim 的全局命令用于同时在多行上运行命令行命令。

特别注意:全局命令是对匹配的,来进行行操作,操作对象是整个行,而不仅仅是匹配的那一部分字符。

全局命令具有以下语法:

:[range]g(global)/{pattern}/{command}
该模式匹配包含该模式的所有行,类似于 substitute 命令中的模式。该命令可以是任何命令行命令。
全局命令的工作方式是对匹配pattern的每一行执行command命令。

反向全局命令

要在不匹配的行上运行全局命令,可以运行:

:[range]g(global)!/{pattern}/{command}

或:v/{pattern}/{command}

通过示例来学习

如果你有下列表达式:

const one = 1; console.log("one: ", one); const two = 2; console.log("two: ", two); const three = 3; console.log("three: ", three);

要删除所有包含“控制台”的行,您可以运行::g/console/d

结果:

const one = 1; const two = 2; const three = 3;

如果使用反向全局命令,则它将删除所有不包含“console”的行

vim如何编辑命令(如 粘贴一个命令) 问题速成解决方式

怎样在vim的命令行中拷贝,粘贴?

在vim的普通模式下,输入:进入命令行模式,我们可以在屏幕下方输入我们想让vim执行的命令。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypdsp.html