Я часто использую Пазлы для программирования и Code-golf . Многие пользователи написали собственные языки исключительно для игры в гольф. Я даже сейчас работаю самостоятельно. Многие из этих языков имеют свои собственные кодировки, чтобы они могли объединять больше команд в один байт. Например, серьезно , желе и 05AB1E .
Могу ли я настроить vim для использования моей собственной пользовательской кодировки? Я хотел бы настроить отображение байтов на кодовые точки Unicode. Например:
0x01 == "¢"
Затем, когда я печатаю <C-v><C-a>
, он отображает ¢
символ, а когда я пишу, он сохраняет байт 0x01
.
Возможно ли это хотя бы отдаленно? А также, будет ли это хорошо работать с системным буфером обмена? (например, я могу копировать и вставлять из моего браузера в Vim и наоборот)
:help conceal
.encoding
иcharconvert
я увидел , что он внутренне пытается использоватьiconv
функцию первого для преобразования наборов символов.iconv
может обрабатывать преобразования между различными наборами символов. Ответ о том, как добавить набор символов,iconv
можно найти здесь (кажется, вам нужно отправить письмо сопровождающему). Может быть, это поможет вам. :)Ответы:
Как предложил romainl, вы можете добиться этого с помощью
conceal
функции vim.Вот пример сценария, который можно использовать:
Как видите, я серьезно отнесся к твоему
^A
примеру. Осторожно, если вы хотите скопировать / вставить этот код,^A
необходимо набрать текст<C-v>
<C-A>
.Что делает этот код, оно определить для каждого
value
/display
Сопряжение согласования синтаксиса.например
Будет соответствовать каждой
08
последовательности и файла и скрывать их с◘
символом.Вы увидите
◘
, но фактический текст в файле08
.Затем вы можете взять список правил и (с помощью причудливого макроса, то есть для серьезно:)
0i\ ['^[f s', '^[lxf)s'],^[ld$
преобразовать каждую строку в пригодный для использования массив vim.Кроме того, если вы хотите ввести буквальный Unicode с Vim, вы можете использовать этот рабочий процесс:
Где
XXXX
значение Юникода, поэтому ввод<C-V>u0001
будет вставлен^A
по желанию.Если вы хотите проверить содержимое файла, я рекомендую использовать шестнадцатеричный дамп файла, который вы можете получить с помощью xxd .
например
Вы можете увидеть здесь
^A
как01
и^B
как02
. (0a
представляет новую строку в конце файла)источник