windows-7 - GVim :!% コマンドで表示される Windows コマンド ライン ウィンドウの中国語パスが文字化けしています。
巴扎黑
巴扎黑 2017-05-16 16:39:56
0
3
1008

GVIM の現在のディレクトリが中国語のディレクトリではない場合、またはファイル名が中国語である限り、コマンド モードで :!% を入力すると、このウィンドウがポップアップ表示され、エラーが報告されます。英語のファイル名や英語のパスでも問題ありません。

巴扎黑
巴扎黑

全員に返信(3)
黄舟

これは中国語や英語とは何の関係もないようです。 2 つのスクリーンショットを見てみましょう:


あなたの説明によると、中国語のファイル名と英語のファイル名のファイルを順番に操作しましたが、表示される結果は同じでした。

重要なのは :!% 命令到底是什么意思。:! 是在 vim shell 里执行一个 shell 命令,而 % 指代当前的文件名于是你的操作等于把文件名当作一个 command 来执行了,那么不管是中文还是英文都会报 command not found で、これは Windows で表示される「システムが指定されたパスを見つけることができません」というメッセージです。

と入力すると、Mac の現在のバッファにあるファイルの内容が開くかどうかはわかりません。 :!% 命令的目的是什么呢?如果是为了打开文件,那么可以 :!open %

いいねを押す +0
某草草

gvim はデフォルトで文字を utf-8 形式でシステムに送信します。h:termencoding
を参照してください。 あなたの場合、utf-8 の中国語文字がシステム cmd に送信され、cp936 エンコードを通じて表示されるため、表示が文字化けします。 次のようにテストして確認できます: encoding=cp936 を設定して cp936 表示を強制します; その後、!%、ファイルを実行すると、cmd によってポップアップされた文字化けしたファイル名が、強制的に表示した内容と一致します

いいねを押す +0
小葫芦

最近良い方法を発見しました。 CMD ウィンドウが「cp936」で、GVIM によって送信されるファイル名が「UTF-8」であることは以前から明らかでした。

そこで、GVIMのiconv()関数を使ってGVIM内の「UTF-8」を「cp936」に変換してCMDに渡します。このようにして、前の問題は解決できます。
現在、次の文を使用して完成させることができます:

リーリー

少し変更するだけで他の機能も使用できます。

主なアイデアの出典: http://www.oschina.net/code/snippet_574132_13357

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート