【发布时间】:2011-03-16 00:35:10
【问题描述】:
我一直在努力寻找可以让我在 Vim 的同一行上运行多个命令的方法,类似于在 *nix 系统中使用分号分隔命令或在 Windows 中使用 & 分隔命令。有没有办法做到这一点?
【问题讨论】:
-
哇,我正试图从你的问题中了解 vim(我做到了),发现我也可以使用
;而不是&&来分隔 Unix shell 命令! -
@ebyrob 我觉得重要的是要注意
&&在 shell 命令中是“布尔值和”,所以如果你有command1 && command2,command2只有在command1成功执行时才会执行。使用;,您只需手动指定该行的结尾并开始一个新行。这与在 shell 脚本中将每个命令写在不同的行上是一样的。 -
...和命令1 || command2, command2 只有在 command1 失败时才会执行。那是因为在计算机逻辑中 ||和 && 是按位的,即使“&&”意味着要评估 command1 和 command2,如果 command1 失败,则不需要评估 command2,因为无论 cmd2 返回什么,它总是会失败,因为第一个返回 false ( 0),而 0&&1 仍然为零。类似地,如果 command1=true,则在 OR 评估中没有理由使用命令 2,因为此时它已经为 true (1),因为 1||0 为 1,并且仅当它为0,需要 0||1(仍然是 1)
-
@osirisgothra 被称为短路/短路评估。