Linux vimdiff立即成为停止的作业,在我尝试fg它时使终端崩溃,但与GUI一起工作

Linux vimdiff立即成为停止的作业,在我尝试fg它时使终端崩溃,但与GUI一起工作,linux,vim,linux-mint,vimdiff,Linux,Vim,Linux Mint,Vimdiff,已解决:问题是my.vimrc中的这一行: set shell=/bin/bash\ -li 更新:问题似乎是由于my.vimrc(将.vimrc重命名为“隐藏”修复了该问题),因此它可能与Mint无关 我在运行LinuxMint17肉桂。当我在终端中运行vim-d file otherversion时,我得到一个带有 "otherversion" 18L, 218C [1]+ Stopped vim -d file otherversion user@mac

已解决:问题是my.vimrc中的这一行:

set shell=/bin/bash\ -li
更新:问题似乎是由于my.vimrc(将.vimrc重命名为“隐藏”修复了该问题),因此它可能与Mint无关

我在运行LinuxMint17肉桂。当我在终端中运行
vim-d file otherversion
时,我得到一个带有

"otherversion" 18L, 218C
[1]+  Stopped                 vim -d file otherversion
user@machine:~/path/to/directory$ ;2R
如果我做了fg 1,终端窗口就会关闭。此外,虽然我可以打字,但没有闪烁的光标。与
vimdiff
相同,而不是
vim-d
。我尝试了多种vim发行版,有些包括GUI,有些没有

但是,对于包含GUI的版本,如果我运行
vim-d-g file otherversion
,它将按预期工作

我宁愿不依赖gvim来使用vimdiff

有什么建议吗


谢谢

从my.vimrc中删除以下行后,问题消失了:

set shell=/bin/bash\ -li

如果需要交互式bash shell(例如获取bash别名),请在
.vimrc
中使用此代码,而不是删除以下选项:

if &diff == 'nodiff'
    set shellcmdflag=-ic
endif

这只会在不运行
vimdiff
时启用交互式bash shell,因此在运行
vim

时会有bash别名。多亏@FDinoff的评论,我这边的问题也得到了解决

问题是~/.cshrc中的“bash”命令

我这样做是为了避免每次登录后都进入bash。在我每次打开vimdiff时都会出现这个问题之前,它一直工作得很好

删除~/.vimrc也帮不了我。然后我读了弗迪诺夫的评论。在那里,他提出,如果“更少”和“人”也停止工作,这可能与壳牌有关。我在我的案例中观察到了相同的问题,这帮助我排除了.vimrc中的腐败


从my ~/.cshrc中删除“bash”后,问题完全消失了。

您的
术语是什么
变量和shell?术语是“xterm”。这是一个bashshell,启动它的命令是gnome终端。另外,请参阅主帖子中的更新。我想这更可能是shell的问题,而不是vim的问题。vim是否正常打开(尝试写入整个屏幕的不同程序是否正常工作,如less或man)。vim被发送到SIGTTOU,默认情况下会停止它。虽然bash不应该有这个问题。(顺便说一句,vimdiff通常只是一个用不同名称指向vim的符号链接)是的,其他一切正常。Vim,less,伙计,top,nano。从
vim-d
开始,而不是
vimdiff
会导致相同的行为。这个地方不是论坛,接受你自己的答案,并删除你问题的“已解决”部分。非常有效,谢谢!然而,这仍然不能防止vim在使用
:diffthis
命令扩散vim内部的文件后崩溃或进入后台。如何补救?