我正在尝试从 vim 执行 ack 。但由于某种原因,vim 决定在执行 ack 后停止。如何阻止 vim 停止?
(在某些系统上我所说的 ack 被称为 ack-grep)
我在 vim 中做什么:
:!ack something
发生的事情是这样的:
$vim myfile.myextension
somefile.someext
356: : this line contains something and somewhat
[1]+ Stopped vim chatconfig.js
当我运行时fg
它说:
vim myfile.myextension
Press ENTER or type command to continue
当我按下 Enter 键时,它会返回到 vim。
我期望发生的是这样的:
$vim myfile.myextension
somefile.someext
356: : this line contains something and somewhat
Press ENTER or type command to continue
所以没有 fg 的事情。
我有一个解决方法,通过管道 ack 来处理一些愚蠢的事情:
:!ack something | grep -v "asdasdasd"
但我只想知道这个技巧,这是在管道到 grep 时自动发生的。
Vim7.4、Ubuntu 15.10、ack 2.14
答案1
我的 vimrc 中有这个 hack:
set shellcmdflag=-ic
让 bash 别名在 vim 中工作。这导致了所描述的行为。通过管道 ack 到另一个进程,ack 将以非交互方式运行。
解决办法,删除hack。