VIM Unicode Bufread / Bufwrite скрипт - PullRequest
       5

VIM Unicode Bufread / Bufwrite скрипт

0 голосов
/ 21 апреля 2010

Проблема:

Я хочу, чтобы мои символы Юникода были сохранены на диске как (скорее tan utf8 / 16 кодировка)

\u####

Однако я хочу, чтобы они отображались как символы Юникода при открытии в vim.

Я думаю, что самый простой способ добиться этого - это скрипт bufopen / bufwrite, который автоматически:

on opening, convert \u#### to unicode character

on writing, convert unicode characters into \u####

Однако я не знаю, какие функции нужно вызывать, чтобы это произошло. Может кто-нибудь протянуть руку?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 апреля 2010

Я сделал этот плагин только для вас!

http://www.vim.org/scripts/script.php?script_id=909

Плагин Vim file для редактирования файлов с кодами Unicode.

Изменяет все коды на символы с акцентом для просмотра и превращает все символы с акцентами в код при записи.

например. он меняет \ u00E9 на é при просмотре и помещает \ u00E9 при записи (кодировка в стиле java). Установите g: ucs_encode_java (в вашем файле .vimrc)

По умолчанию он работает для всех акцентированных символов в приложении Unicode Latin-1, но вы можете быстро изменить его для своих нужд.

Вы также можете настроить его для работы с HTML-кодировкой (& # nnn;). Установите g: ucs_encode_html (в вашем файле .vimrc)

Вы также можете настроить его для преобразования акцентированных символов в восьмеричное кодирование (\ 340). Установите g: ucs_encode_octal в вашем .vimrc file

Роджер

1 голос
/ 21 апреля 2010

Вам понадобится внешний инструмент для преобразования между двумя форматами. Я рекомендую Биллу Позеру uni2ascii:

$ echo täßt | uni2ascii -q -a L
t\u00E4\u00DFt
$ echo täßt | uni2ascii -q -a L | ascii2uni -q -a L
täßt

Тогда вы должны сказать Vim использовать этот фильтр. Это только самый элементарный метод (я не очень хорош в этой части сценариев vim):

autocmd BufNewFile,Bufread *.u :%!ascii2uni -q -a L
autocmd BufWritePre        *.u :%!uni2ascii -q -a L
autocmd BufWritePost       *.u :%!ascii2uni -q -a L

Измените шаблон имени файла так, как вам подходит.

Существует более сложный пример для связанной проблемы, включенной в документы: :help hex-editing. Обсуждение этого подхода и даже лучшее решение можно найти в Vim wiki .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...