macvim shell(:sh)仅显示字符代码/转义序列

时间:2012-07-26 18:47:24

标签: shell vim zsh macvim

刚刚用自制软件编译MacVim。这是我在:sh然后输入ls:

时的样子

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

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

更新

我跑哦-my-zsh

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

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

似乎没有帮助

另一个更新

删除我的zsh syntax highlighting plugin它似乎工作正常。有没有办法在使用oh-my-zsh时关闭zsh插件只有当它是一个虚拟的'哑终端'时?

5 个答案:

答案 0 :(得分:4)

当您在GVim或MacVim中执行:sh时,您无法获得真正的终端模拟器。

它是“愚蠢的”,并且没有方式让它理解那些转义序列。你最好习惯它或者在vim-dev邮件列表上询问(有令人信服的参数和现成的补丁)。

答案 1 :(得分:2)

您可能想尝试ConqueTerm plugin尽力解释ANSI序列,即使在MacVim中也是如此。

答案 2 :(得分:1)

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

如果您想在命令行上使用颜色提示,但不在MacVim中使用颜色提示,则可以在~/.bashrc中通过在vim内部设置PS1(来自here

来解决此问题
if [ $VIM ]; then
        export PS1='\h:\w\$ '
fi

答案 3 :(得分:0)

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

#!/bin/sh
command ls $@

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

答案 4 :(得分:0)

仅供参考,:h guioptions now support以下标志:

  '!'   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,然后感到惊讶:)。