Saya sering menggunakan Programming Puzzles dan Code-golf . Banyak pengguna di sana telah menulis bahasa khusus untuk bermain golf. Saya bahkan mengerjakan sendiri sekarang. Banyak dari bahasa ini memiliki penyandian khusus mereka sendiri sehingga mereka dapat menambahkan lebih banyak perintah ke dalam satu byte Misalnya, serius , jelly dan 05AB1E .
Bisakah saya mengonfigurasi vim untuk menggunakan penyandian khusus saya sendiri? Saya ingin mengonfigurasi pemetaan byte ke unicode-point-point. Sebagai contoh:
0x01 == "¢"
Kemudian, ketika saya mengetik <C-v><C-a>
, itu akan menampilkan ¢
karakter, dan ketika saya menulis, itu akan menghemat byte 0x01
.
Apakah ini bahkan mungkin? Dan juga, apakah ini akan bekerja dengan baik dengan clipboard sistem? (misalnya, saya dapat menyalin dan menempel dari browser saya ke vim dan sebaliknya)
:help conceal
.encoding
dancharconvert
saya melihat bahwa itu secara internal mencoba menggunakaniconv
fungsi pertama untuk mengonversi set karakter.iconv
dapat menangani konversi antara rangkaian karakter yang berbeda. Jawaban untuk cara menambahkan set karakter keiconv
dapat ditemukan di sini (tampaknya Anda harus mengirim pengelola). Mungkin ini membantu Anda. :)Jawaban:
Seperti yang disarankan romainl, Anda dapat mencapainya dengan
conceal
fitur vim.Berikut ini contoh skrip yang dapat digunakan:
Seperti yang Anda lihat, saya mengambil beberapa pemetaan serius dan
^A
contoh Anda . Hati-hati jika ingin menyalin / menempel kode ini,^A
perlu diketik<C-v>
<C-A>
.Apa yang dilakukan kode ini adalah, ia menentukan untuk setiap
value
/display
memasangkan suatu sintaks yang cocok.misalnya
Akan mencocokkan setiap
08
urutan dan file dan menyembunyikannya dengan◘
karakter.Anda akan melihat
◘
, tetapi teks sebenarnya dalam file tersebut adalah08
.Anda kemudian dapat mengambil daftar aturan dan (dengan makro mewah, yaitu untuk serius:)
0i\ ['^[f s', '^[lxf)s'],^[ld$
mengubah setiap baris menjadi array vim yang dapat digunakan.Juga, jika Anda ingin mengetikkan unicode literal dengan vim, Anda bisa menggunakan alur kerja ini:
Di mana
XXXX
nilai unicode, jadi mengetik<C-V>u0001
akan memasukkan^A
seperti yang diinginkan.Jika Anda ingin memverifikasi konten file, saya sarankan menggunakan hex dump file, yang bisa Anda miliki dengan xxd .
misalnya
Anda dapat melihat di sini
^A
sebagai01
Anda dan^B
sebagai Anda02
. (0a
mewakili baris baru di akhir file)sumber