windows-7 - Laluan Cina bagi tetingkap baris arahan Windows yang muncul dengan arahan GVim :!% bercelaru Bagaimana untuk menyelesaikannya?
巴扎黑
巴扎黑 2017-05-16 16:39:56
0
3
1013

Buka fail dalam direktori Cina Selagi direktori semasa GVIM bukan direktori Cina atau nama fail adalah Cina, masukkan :!% dalam mod arahan dan tetingkap ini akan muncul dan ralat akan dilaporkan... Tiada masalah dengan nama fail Inggeris atau laluan Inggeris.

巴扎黑
巴扎黑

membalas semua(3)
黄舟

Ini nampaknya tiada kaitan dengan bahasa Cina atau Inggeris, mari lihat dua tangkapan skrin:


Menurut penerangan anda, saya mengendalikan fail dengan nama fail Cina dan nama fail Inggeris mengikut turutan, dan hasil yang dipaparkan adalah sama.

Kuncinya ialah maksud perintah :!% sebenarnya. :! adalah untuk melaksanakan perintah shell dalam vim shell, dan % merujuk kepada nama fail semasa, jadi operasi anda adalah bersamaan dengan melaksanakan nama fail sebagai arahan Kemudian sama ada bahasa Cina atau Inggeris, ia akan melaporkan command not found, iaitu "sistem tidak dapat mencari laluan yang ditentukan" yang anda lihat di bawah Windows. :!% 命令到底是什么意思。:! 是在 vim shell 里执行一个 shell 命令,而 % 指代当前的文件名于是你的操作等于把文件名当作一个 command 来执行了,那么不管是中文还是英文都会报 command not found,也就是你在 windows 下看到的“系统找不到指定的路径”吧。

不知道你输入 :!% 命令的目的是什么呢?如果是为了打开文件,那么可以 :!open %

Saya tidak tahu apa tujuan memasukkan perintah :!%? Jika anda ingin membuka fail, anda boleh menggunakan :!open % Ini boleh membuka kandungan fail dalam penimbal semasa di bawah Mac Bagi Windows, saya tidak pasti. 🎜
某草草

gvim akan menghantar aksara ke sistem dalam format utf-8 secara lalai Rujuk h:termencoding
Dalam kes anda, aksara Cina dalam utf-8 dihantar ke cmd sistem, dan kemudian dipaparkan melalui pengekodan cp936 Jadi paparan menjadi kacau.
Anda boleh menguji seperti ini untuk mengesahkan: tetapkan pengekodan=cp936 untuk memaksa paparan cp936 kemudian !%, laksanakan fail, nama fail bercelaru yang muncul oleh cmd adalah konsisten dengan kandungan yang anda paksa untuk paparkan

小葫芦

Saya baru-baru ini menemui cara yang baik. Jelas sebelum ini bahawa tetingkap CMD ialah "cp936" dan nama fail yang dihantar oleh GVIM ialah "UTF-8".

Jadi, gunakan fungsi GVIM iconv() untuk menukar "UTF-8" di dalam GVIM kepada "cp936" dan hantar ke CMD. Dengan cara ini, masalah sebelum ini dapat diselesaikan.
Saya kini boleh menggunakan ayat ini untuk melengkapkannya:

:execute "!".iconv('"'.@%.'"','UTF-8','cp936')

Anda juga boleh mempunyai fungsi lain dengan sedikit pengubahsuaian.

Idea utama datang daripada: http://www.oschina.net/code/snippet_574132_13357

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan