通过vim执行ack

通过vim执行ack

我正在尝试从 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。

相关内容