[с использованием MacVim 7.3 на OS X Lion]
У меня есть функция vimscript, которая запускает внешнюю команду. Он работает правильно, но на выходе отображаются (нежелательные) управляющие символы, такие как [0m
, [33m
, [36m
и -1H
. Соответствующая строка в функции vimscript:
exec ":!bundle exec rspec --color " . a:filename
Который производит:
:!bundle exec rspec --color spec/acceptance/user_logs_in.feature
[33m*[0m
Pending:
[33m User logs in [0m
[36m # the step 'the user "foo@test.host" exists' is not implemented[0m
[36m # [0m
Finished in 0.07121 seconds
[33m1 example, 0 failures, 1 pending[0m
Вот как выглядят те же команды и выходные данные из терминала, как я хочу, чтобы они отображались в vim:
$ bundle exec rspec --color spec/acceptance/user_logs_in.feature
*
Pending:
User logs in
# the step 'the user "foo@test.host" exists' is not implemented
#
Finished in 0.1161 seconds
1 example, 0 failures, 1 pending
Кроме того, каждый раз, когда я выполняю внешнюю команду, vim отображает -1H
сразу после нее. Например, если я наберу:
:ls<return>
Понятно:
:ls-1H
<rest of the output is as expected>
Любые идеи о сокрытии этих управляющих символов и -1H
.
(отказ от ответственности: я новичок в vim, поэтому, пожалуйста, не принимайте слишком много базовых знаний с моей стороны.)
Спасибо.
Обновление 31.03.2012 @ 17:32
Сэм Голдман правильно: MacVim не умеет отображать цвета, поэтому выводит цветовые коды.
Я переключился на терминал vim (который поддерживает цвета, по крайней мере, с iTerm ), но использую версию vim, которая поставляется с MacVim, которая является более современной и компилируется с Рубиновая поддержка (между прочим). Самый простой способ сделать это:
brew install macvim --override-system-vim