4

刚刚用自制软件编译了 MacVim。这是我 :sh 然后输入 ls 时的样子:

http://cloud.jtmkrueger.com/image/2N0S0T3k3l1J

如您所见,它只是字符代码。

更新

我运行 oh-my-zsh

尝试安装此处命名的插件:

http://vim.1045645.n5.nabble.com/ANSI-colors-td1219411.html

似乎没有帮助

另一个更新

删除我的zsh 语法高亮插件后,它似乎工作正常。仅当它是vim“哑终端”时才使用oh-my-zsh时有没有办法关闭zsh插件?

4

5 回答 5

4

当您:sh在 GVim 或 MacVim 中进行操作时,您不会获得真正的终端仿真器。

它是“愚蠢的”,没有办法让它理解那些转义序列。你最好习惯它或在 vim-dev 邮件列表上询问(带有令人信服的论据和现成的补丁)。

于 2012-07-26T19:32:56.890 回答
2

你可能想试试ConqueTerm 插件,它尽最大努力解释 ANSI 序列,即使在 MacVim 中也是如此。

于 2012-07-26T20:12:01.427 回答
1

您看到的实际上不仅仅是字符代码,而是您通常的包含颜色代码的 shell 提示符。您可以通过重新定义PS1或删除您修改的定义来禁用它~/.bashrc

如果您想在命令行上使用颜色提示,而不是在 MacVim 中,您可以~/.bashrc通过在 vim 中以不同方式设置 PS1 来解决此问题(来自此处

if [ $VIM ]; then
        export PS1='\h:\w\$ '
fi
于 2012-07-26T19:07:43.233 回答
1

仅供参考,:h guioptions 现支持以下标志:

  '!'   External commands are executed in a terminal window.  Without
        this flag the MS-Windows GUI will open a console window to
        execute the command.  The Unix GUI will simulate a dumb
        terminal to list the command output.
        The terminal window will be positioned at the bottom, and grow
        upwards as needed.

设置:set go+=!、运行:sh并感到惊讶:)。

于 2019-03-06T08:09:50.207 回答
0

您可以尝试以下操作,而不是 ls,输入command ls; 它不应该显示转义码。如果可行,您可以简单地在路径中的文件夹中创建一个新文件,例如 vls,其内容如下:

#!/bin/sh
command ls $@

在那之后chmod +x vls,如果它在你的路径中,你应该可以从 vim 中使用它。

于 2012-07-26T20:14:46.353 回答