Saat menggunakan Vim melalui SSH saya menyalin beberapa konten dari halaman web ke sesi SSH / Vim saya dan mendapatkan hasil berikut:
SIZE=`df -h|grep $DISC|awk <91>{print $2}<92>`
Tampaknya <91>
dan <92>
berdiri untuk '
tetapi bagaimana saya bisa mencari dan mengganti barang-barang ini? Dan apa yang 91
/ 92
artinya? Bagaimana ini disandikan karena 91
/ 92
dalam ASCII berarti \
dan [
?
:e ++enc=cp1252
:e ++enc=cp1252
? Jika saya ingin vi dari baris perintah file yang berisi karakter kata MS, akan lebih baik untuk dapat melakukannya dalam satu langkah, daripada membuka vi dan kemudian memuat file dengan:e
perintahvim --cmd 'set fileencodings=cp1252' /path/to/file
- Perintah berjalan sebelum normal.vimrc
dan menetapkanfileencodings
opsi (perhatikan akhirs
; Anda juga dapat menggunakan nama yang lebih pendekfencs
) sehingga Vim hanya akan mencoba CP1252 saat memuat file. Ini seharusnya berfungsi untuk pengeditan sekali-kali dari file-file seperti itu, tetapi ini dapat menyebabkan komplikasi jika Anda ingin menggunakan instance Vim untuk mengedit file dengan pengkodean lainnya.vim -c"set fencs" /path/to/file
91 dan 92 adalah kode hex untuk membuka dan menutup tanda kutip keriting (kutipan tunggal) dalam versi MS Windows default dari pengkodean latin1 / ISO-8859-1, yang lebih khusus disebut cp1252 / Windows-1252 (di mana cp adalah singkatan dari kode halaman).
Karakter-karakter ini paling sering disisipkan oleh orang yang menyalin konten dari dokumen Word / email Outlook sebagai bagian dari fitur "Kutipan Cerdas". Karakter masalah lain dalam halaman kode ini adalah hex 93/94 yang membuka dan menutup tanda kutip ganda, titik peluru (•) dan ligatur OE (œ dan Œ). Anda dapat melihat daftar lengkap "karakter bermasalah", karakter yang tidak memetakan langsung ke ISO-8859-1 atau UTF-8 dengan kode yang sama, pada halaman Wikipeda untuk cp1252 disorot dengan warna hijau.
Jika semua yang Anda inginkan adalah membuka file dalam pengkodean yang benar maka gunakan opsi ++ enc = cp1252 ke perintah: e:
Anda dapat mengganti kode hex buruk tertentu di Vim dengan perintah pengganti (: s) dan salah satu pengganti kode:
Untuk mengubah hex 91/92 karakter yang perlu Anda lakukan:
sumber
sed -i "s/[\x91\x92]/\'/g" *.txt
tetapi tidak berhasil.perl -p -i -e "s/[\x91\x92]/'/g" *.txt
sed -i "s/\x92/'/g"
bekerja untukku.Gunakan
iconv
untuk mengonversi file teks dari CP1252 ke UTF-8 sebelum membuka.Di Mac OS gunakan ini:
sumber
Mereka sebenarnya berdiri untuk hex 91 dan 92, yang dalam codepage Windows membuka dan menutup tanda kutip tunggal ('dan' - Alt-0145 dan Alt-0146).
Coba cari / ganti berikut ini:
sumber