質問

を使用してい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文字)です。

を利用した場合、セントロイド分分子動力学としてのシェードを動作させることができなしの名での問題のようだときからの出力をユーへvim.

興味深いことに、この作:

:!dir -name

としては:

:r !dir -name

更新: 確認行動による David

を行う場合は、設定コマンドは上記の_vimrc,試験出力の意味がない。ただし、実行し、vimではなく、_vimrc,:試作品として期待される。

また、私たiconvを利用の場合でエンコーディングの問題:

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

でもこなせます。をとることができると思いますかの間違ったエンコードの種類ものです。

ものを作る方法を知っていること。

役に立ちましたか?

解決

でもチェックインのハッキングだけでなく、次の作品にはVim7.2.知っ走るユー内CMDます。

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

さ...

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

他のヒント

また同様の問題に記載の多くはこちら。

具体的には、呼び出し

:set shell=powershell

動vimがユー仕事をもっと追加:

set shell=powershell

私vimrcファイルだと、エラー切れになっていませんか#温度ファイル...."

この際、デフォルトシェルが変更され、vimを自動的にセットすshellxquoteる"というシェルコマンドは下記のようにな:

 powershell -c "cmd > tmpfile"

場としてこのコマンドのニーズということで、vimの温ファイル:

 powershell -c "cmd" > tmpfile

設定shellquoteに"私のvimrcファイルをアンセットを禁止shellxquote(設定でブランクスペース)を見直すべての私の問題:

set shell=powershell
set shellcmdflag=-c
set shellquote=\"
set shellxquote=

ここのはさらにスクリプティング用語集vim ーのシステム()の呼び出し:システム()のユー vimで

疑いの問題はユー用のネイティブの文字列エンコードします。純であるUTF-16バイト-ダーマークです。

き配管の間でのオブジェクトのコマンドで問題なく対応します。この計ピ外部プログラムものです。

できるパイプの出力をファイルな変更をサポートのエンコードな形式での出力のための端末でデフォルト(arrgh!), そのような"取得プロセス"は切り捨と楕円など。を指定できる幅の仮想端末に対してファイルの用途ものです。

いはどのように役立つこれらの情報はなにもわかりやすくする為、この問題のビットです。

試しに交換

"dir \*vim\*"

 " -command { dir \*vim\* }"

編集: 使ってみcmd.exe として、シェルおよびput"powershell.exe"前"コマンド"

興味深い質問-こちらはsomething elseの混乱した。ことなく変更するvimrcファイルの場合、その後、以下のコマンドを実行し、gvim:

:set shell=powershell.exe
:set shellcmdflag=-noprofile
:echo system("dir -name")

での動作は多いです。

まも同様に変更しますvimrcファイルでの貝殻のshellcmdflagオプション)、走:エコシステム("dir-name")を返しまうキャラクターです!

最初のコード例は、動作しんぐでvimrc.

うっそうとしていることをどのような私のvimrcができます。ある:

set encoding=utf8

編集:組織っぽされることを思い出します。だいVIMのデフォルトにunicodeとにかく、これらの日には、...

の答えをこのページにした私にとってまったこのヒント https://github.com/dougireton/mirror_pond/blob/master/vimrc ●セットshellxquote=[空白文字]の欠です。

if has("win32") || has("gui_win32") 
     if executable("PowerShell") 
        " Set PowerShell as the shell for running external ! commands 
        " http://stackoverflow.com/questions/7605917/system-with-powershell-in-vim      
        set shell=PowerShell 
        set shellcmdflag=-ExecutionPolicy\ RemoteSigned\ -Command 
        set shellquote=\" 
        " shellxquote must be a literal space character. 
        set shellxquote=  
   endif 
endif 

を提案しますhackishます。なんの問題の解決のため、その仕事なんだか。

この Vimプラグイン 自動化の創造的なスクリプトファイルをユ話を通じてcmd.exe ペーストの結果です。なのにリニューアルがなされておりとして適切なユー取り扱いによるvimでも動きます。

てみてく set shellcmdflag=\ -c


説明:

Vimを使tempname()を生成する温度ファイルのパスをシステム()を読み込み.

場&シェルを含む'sh'、&shellcmdflagで始まり'-' その後tempname()を生成する温度ファイルのパススラッシュのみ.

これにより、 set shell=powershell set shellcmdflag=-c その後Vimのまま読み込み、温度ファイルをスラッシュのみが できません。

救済は、代わりに set shellcmdflag=\ -c ることで、空白文字に&shellcmdflagの最初の文字 は'-'でtempname()作温度ファイルのパスに戻る スラッシュするいくつかの波長におけるシステム().


かの委員は、vim_devメーリングリスト https://groups.google.com/forum/#!題目又はvim_dev/vTR05EZyfE0 この値よります。

actf 回答の仕事がないものの、ユー建DIFF(もし問題が解決しない場合は、Linuxについてくれるものでなければなりませるこのラインをユーロにdiff働再びVIM:

Remove-Item Alias:diff -force

利用しないVIMはPowershellのデフォルトの出力がUnicodeで扱います。メモ帳読んでunicodeでご利用いただけますを参照の場合の出力も予定しているとのことです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top