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?