我用 find 搜索了几个文件,我想在 Vim 的选项卡中打开所有这些文件。所以我试过这个:
find . | xargs fgrep -l myExpression | xargs vim -p
Run Code Online (Sandbox Code Playgroud)
这很好用,除了当我完成并退出 Vim 时,我在 vim 中输入的所有内容都是不可见的,并且退格键不起作用(所以当我像ls<backspace><backspace>exit
生成的历史一样输入ls^?^?exit
而不是exit
。它也警告我我的管道不是从终端。
不过,当我重新启动 shell 时,一切又都好了。这始终是可重现的。
bash 版本:
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)
维姆版本:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Apr 14 2015 05:43:37)
Included patches: 1-699
Run Code Online (Sandbox Code Playgroud) 我想写一个类似于以下内容的别名:
alias baz="false || echo bar"
Run Code Online (Sandbox Code Playgroud)
(它实际上不是false
,它是一个可能会失败的命令)。但是,我想将失败的状态代码传递给下一个调用者。换句话说,这是当前的行为:
$ false; echo $?
1
$ false || echo foo; echo $?
0
Run Code Online (Sandbox Code Playgroud)
我想做一个不同的操作,它在各方面都与 具有相同的行为false || echo foo
,除非我这样做时echo $?
它会返回1
。
注意:我希望这个echo foo
位基本上总是成功的。