Rumah > Soal Jawab > teks badan
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.
黄舟2017-05-16 16:41:56
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 %
:!%
? 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. 🎜某草草2017-05-16 16:41:56
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
高洛峰2017-05-16 16:41:56
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