Vim с Powershell - PullRequest
       50

Vim с Powershell

54 голосов
/ 18 сентября 2008

Я использую gvim в Windows.

В моем _vimrc я добавил:

set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>

function! Test()
  echo system("dir -name")
endfunction

command! -nargs=0 Test :call Test()

Если я выполняю эту функцию (: Тест), я вижу бессмысленные символы (не цифры / буквы ASCII).

Если я использую cmd в качестве оболочки, она работает (без -name), поэтому, похоже, проблема заключается в получении вывода из powershell в vim.

Интересно, это прекрасно работает:

:!dir -name

Как это сделать:

:r !dir -name

ОБНОВЛЕНИЕ: подтверждение поведения, упомянутого Дэвидом

Если вы выполняете команды набора, упомянутые выше в _vimrc,: Проверка выводов ерунда. Однако, если вы выполняете их непосредственно в vim, а не в _vimrc,: Test работает должным образом.

Также я попытался использовать iconv на случай, если возникла проблема с кодировкой:

:echo iconv( system("dir -name"), "unicode", &enc )

Но это не имело никакого значения. Возможно, я использую неправильные типы кодирования.

Кто-нибудь знает, как заставить это работать?

Ответы [ 11 ]

0 голосов
/ 18 сентября 2008

Я не использую VIM, но вывод Powershell по умолчанию - Unicode. Блокнот может читать юникод, вы можете использовать его, чтобы увидеть, получаете ли вы ожидаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...