Vim con Powershell

Estoy usando gvim en Windows.

En mi _vimrc he agregado:

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

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

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

Si ejecuto esta función (: Prueba) veo caracteres sin sentido (caracteres ASCII sin número / letra).

Si uso cmd como shell, funciona (sin el -name), por lo que el problema parece ser obtener la salida de powershell a vim.

Interesantemente, esto funciona muy bien:

:!dir -name

As hace esto:

:r !dir -name

ACTUALIZAR comportamiento de confirmación mencionado por David

Si ejecuta los comandos de set mencionados anteriormente en _vimrc,: La prueba genera tonterías. Sin embargo, si los ejecuta directamente en vim en lugar de en _vimrc,: La prueba funciona como se esperaba.

Además, he intentado usar iconv en caso de que haya sido un problema de codificación:

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

Pero esto no hizo ninguna diferencia. Sin embargo, podría estar usando los tipos de codificación incorrectos.

¿Alguien sabe cómo hacer que esto funcione?

Respuestas a la pregunta(22)

Su respuesta a la pregunta