【问题标题】:Vim shell commands (c flag) behaving differently in bashVim shell 命令(c 标志)在 bash 中的行为不同
【发布时间】:2014-04-12 20:24:13
【问题描述】:

如果我在终端(Mac OSX)中运行它:

vim dump.md -c 'vsplit poa.md' -c 'split one.md' -c ':wincmd h'

效果很好(使用这些文件创建三个窗口)。

如果我将它作为 bash 脚本的一部分,那就有问题了。在完成它应该做的事情之后,它在 vim 状态行中留下了这个:

1:dump.md  2:poa.md   3:one.md
1:dump.md  2:poa.md   3:one.md
Press ENTER or type command to continue

我必须按 ENTER 6 次才能清除状态行并返回编辑(每个 ENTER 再次输出上述内容)。

无论如何?

另外,不确定这是否重要,但 vim 是 mvim (MacVim) 的别名。

编辑

这是 bash 脚本,虽然我认为这并不重要,但在手动输入 vim dump.md... 命令之前,我已经单独运行了整个脚本,它运行良好。

 13 
 12 #!/bin/bash
 11 
 10 cd ~/Dropbox/Journal/dumps/
  9 
  8 LAST=`ls -tAF | grep '/$' | head -1`
  7 NEW=dump-$(date +"%Y-%m-%d_%T")
  6 
  5 mkdir $NEW
  4 cd $NEW
  3 
  2 cp ../$LAST/poa.md ./poa.md
  1 
 14  vim dump.md -c 'vsplit poa.md' -c 'split one.md' -c ':wincmd h'
  1

【问题讨论】:

  • 请在您执行此操作的地方发布 bash-script-part
  • 正如你所说,它也适用于我的命令行。尝试使用#!/bin/bash -x 作为你的shebang,这可能会揭示一些东西。顺便说一句,我在 ubuntu 上...
  • 调试输出看起来很干净。感谢您的提示
  • 我尝试了您的脚本的修改版本(将 LAST 和 NEW env.var 硬编码为 'foo' 和 'bar')并且效果很好。我也在使用 OS X (10.6.8)。也许您的启动文件中有一些东西正试图写入标准输出。尝试将-u 添加到vim 行。
  • 对不起,我是想写vim -u NONE 。这应该会阻止插件和其他启动文件运行。我也认为它可能是一个插件。

标签: bash shell vim macvim


【解决方案1】:

起初:

ls -al

看看你的文件是否存在...如果你的文件是 test 确保 vim 不会读取此类文件:

.test OR test~ OR something like these

然后:

vim file

进行更改...

然后说:

:wq!

然后再尝试打开...问题应该解决了

更新

试试这个:

ls -a | grep swp

如果有类似 .script.swp 或类似的文件,您应该删除它们...

您的问题将得到解决...您应该查看您的脚本是否存在 .script.... 并且您应该将其删除...

如果您找不到以 . 开头的文件,请尝试将所有文​​件(脚本)移动到另一个目录,然后使用它们..并使用 :q! 和 @987654330 @ 保存并相当...

【讨论】:

  • 我遇到了同样的问题......现在我忘记了我到底做了什么......对不起......如果我得到答案,我会告诉你
猜你喜欢
  • 2013-09-22
  • 2015-09-03
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-21
  • 2014-01-11
相关资源
最近更新 更多