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.
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 melaporkancommand not found
, iaitu "sistem tidak dapat mencari laluan yang ditentukan" yang anda lihat di bawah Windows.:!%
命令到底是什么意思。:!
是在 vim shell 里执行一个 shell 命令,而%
指代当前的文件名于是你的操作等于把文件名当作一个 command 来执行了,那么不管是中文还是英文都会报command not found
,也就是你在 windows 下看到的“系统找不到指定的路径”吧。不知道你输入
Saya tidak tahu apa tujuan memasukkan perintah:!%
命令的目的是什么呢?如果是为了打开文件,那么可以:!open %
:!%
? 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:
Anda juga boleh mempunyai fungsi lain dengan sedikit pengubahsuaian.
Idea utama datang daripada: http://www.oschina.net/code/snippet_574132_13357