Ketika saya menyalin teks non-ascii dari Windows dan menempelkannya ke Emacs, itu muncul sebagai urutan oktal. Sebagai contoh, jika saya menempelkan ä ke Emacs itu muncul sebagai \ 344.
Saya bisa mengetikkan Cq 344 untuk mendapatkan ä kembali di Emacs. Itu menjengkelkan, tetapi bisa ditoleransi jika hanya ada satu karakter. Tetapi jika ada banyak karakter yang berubah menjadi urutan escape oktal, akan lebih mudah untuk menjalankan beberapa perintah pada suatu wilayah untuk mengkonversi semua yang ada di dalamnya. Apakah sudah ada perintah seperti itu? Jika tidak, bagaimana Anda menulis fungsi untuk melakukannya?
[Saya mengatur sistem pengkodean default saya ke utf-8 dalam file .emacs saya, dan saya menggunakan file .emacs yang sama pada Windows dan Linux. Tetapi masalahnya hanya terjadi ketika menyalin dari aplikasi Windows ke Emacs. Menyalin dari Emacs ke aplikasi Windows lain berfungsi dengan baik.]
sumber
revert-buffer-with-coding-system
(lihat dokumentasinya). Emacs menunjukkan karakter dengan cara ini karena Anda menyalinnya dari lingkungan yang berada dalam sistem pengkodean yang berbeda (dengan asumsi ANSI dengan apa yang disebut karakter ASCII tinggi yang digunakan untuk membuat bahasa Latin dengan diakritik), tetapi buffer Anda harus menggunakan sesuatu seperti UTF-8 (untuk karakter ASCII dengan set bit tinggi tidak memiliki arti, yaitu tidak valid).set-clipboard-coding-system
. CobaC-h a coding-system
lihat fungsi apa saja yang ada di grup ini.emacs -Q
dan jika Anda sudah melihat masalah di sanaM-x report-emacs-bug
,.insert-file-literally
(dan sudah terlambat untuk membatalkan atau menghapus / masukkan kembali file).Jawaban:
Ternyata bagian yang menyinggung dari file .emacs saya adalah
(set-selection-coding-system 'utf-8)
. Setelah saya menghapus garis itu, Emacs berperilaku seperti yang diharapkan.sumber
Setelah dibuat ini:
dari misc-utils.el di https://launchpad.net/sx-emacs-werkstatt
sumber