
私は Windows 8 で Vim (正確には GVim) を使用しており、通常の でコンパイルしたいのです:!g++ %
が、ファイルが保存されているディレクトリの名前にアクセントがあり、Vim では問題があるようです。
呼び出しの結果は次のとおりです:!g++ "%"
(Vim は現在のファイル パスの周囲に引用符を追加したり、スペースをエスケープしたりしないようです)。
わかりやすくするために、表示されているファイルのフルパスは次のとおりです。E:\Programación\Problemas algoritmos\(ns) ACM-ICPC Live Archive 2088 - Entropy.cpp
Vim(GVimの代わりに)を使用すると、アクセントは適切に処理されるようですが、それでも と の前に が追加されるため\
、呼び出されたコマンドは次のようになります。(
)
g++ "E:\Programación\Problemas algoritmos\\(ns\) ACM-ICPC Live Archive 2088 - Entropy.cpp"
これらのコマンドを実行する
:set encoding?
:set termencoding?
Vimでは
encoding=latin1
termencoding=cp850
しかしGVimでは
encoding=latin1
termencoding=
どうすれば解決できるでしょうか?
編集:
私はすでに_vimrcで次の行を試しました:
set encoding=latin1
set termencoding=cp850
本当の問題はアクセントではなく括弧にあるようです。例えば、áéíóú.cpp
括弧は機能しますが、(a).cpp
答え1
これを解決する正しい方法は、.vimrc で termencoding を設定することだと思います。ただし、本当にそれが機能しない場合は、反対側からこれを回避できる可能性があります。コマンドを使用して、cmd.exe シェルのエンコーディングを設定できますchcp
。たとえば、これは機能する可能性がありますが、テストしていません。
:!chcp cp1252 & g++ "%"
コードページ 1252 は、Vim がエンコードに使用していると思われる ISO-8859-1 (latin1) のスーパーセットです。