SORU
18 EYLÜL 2008, PERŞEMBE


Vim Powershell ile

Windows gvim kullanıyorum.

Benim _vimrc ekledim:

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

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

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

Eğer bu işlevi çalıştırmak (Test) anlamsız karakterler (non rakam/harf ASCII karakter) görüyorum.

Eğer kabuk gibi cmd kullanıyorum, sorun powershell alma çıkışı gibi (adı) olmadan, yani vim içine çalışır.

İlginçtir, bu harika çalışıyor:

:!dir -name

Olarak bu:

:r !dir -name

GÜNCELLEME:onaylayan davranış David tarafından belirtilen

Eğer çalıştırmak için set komutları yukarıda _vimrc, Testi bahsedilen saçma çıktılar. Ancak, eğer onlara doğrudan _vimrc, :Test vim yerine çalıştırmak için beklendiği gibi çalışır.

Ayrıca, kodlama bir sorun oldu diye iconv kullanarak denedim:

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

Ama bu herhangi bir fark yoktu. Ama yanlış kodlama türlerini kullanıyor olabilirim.

Herkes bu işin nasıl yapıldığını biliyor musun?

CEVAP
5 AĞUSTOS 2010, PERŞEMBE


Bir kesmek biraz, ama şunu Vim 7.2 çalışır. Dikkat edin, Powershell CMD oturumu içinde çalıştırıyorum.

if has("win32")
    set shell=cmd.exe
    set shellcmdflag=/c\ powershell.exe\ -NoLogo\ -NoProfile\ -NonInteractive\ -ExecutionPolicy\ RemoteSigned
    set shellpipe=|
    set shellredir=>
endif

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

Aşağıdaki test...

  • :!dir -name
  • :call Test()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • tychoadragmire

    tychoadragmi

    20 Mart 2006