[Moscow.pm] Указание кодировки файла

Maxim Vuets maxim.vuets на gmail.com
Чт Окт 23 11:31:29 PDT 2008


On 9/5/08, Maxim Vuets <maxim.vuets на gmail.com> wrote:
> 05.09.08, Павел Тимонин<gg.error на gmail.com> написал(а):
>> вопрос - зачем, если вим определяет кодировки при открытии автоматически и
>> правильно? как его заставить это делать я уже писал.
>
> У меня було чуток времени и я вот накропал то, что требовало сообщество (:
> Не надо патчить vim, надо лишь скопировать в ~/.vim/plugin файл следующего
> содержания:
>
> ---------------8<---------------8<---------------8<---------------
> " File: emacscoding.vim
> " Author: Maxim Vuets <maxim.vuets на gmail.com>
> " Last Change: 2008 Sep 05
> " Version: 0.1
>
> function EmacsCodingLine()
> 	let l = getline(1)
> 	if match(l, '#!') == 0
> 		let l = getline(2)
> 	endif
> 	let re =
> '^.*-\*-\s\{1,\}.*coding:\s\{1,\}\([a-zA-Z0-9-]\{1,\}\).*\s\{1,\}\-\*-.*$'
> 	if match(l, re) == 0
> 		let enc = substitute(l, re, '\1', '')
> 		execute ':edit ++enc=' . enc
> 		let &fenc = enc
> 	endif
> endfunction
>
> autocmd BufRead * call EmacsCodingLine()
> ---------------8<---------------8<---------------8<---------------

Обнаружил небольшой баг: отключалась подствека синтаксиса.
Вот заплатка:

--- emacscoding.vim.old	2008-10-23 21:26:18.000000000 +0300
+++ emacscoding.vim	2008-10-23 21:25:29.000000000 +0300
@@ -1,7 +1,7 @@
 " File: emacscoding.vim
 " Author: Maxim Vuets <maxim.vuets на gmail.com>
-" Last Change: 2008 Sep 05
-" Version: 0.1
+" Last Change: 2008 Oct 23
+" Version: 0.2

 function EmacsCodingLine()
 	let l = getline(1)
@@ -16,4 +16,4 @@
 	endif
 endfunction

-autocmd BufRead * call EmacsCodingLine()
+autocmd BufReadPre * call EmacsCodingLine()


-- 
 .  Hoc est simplicissimum!
..: maxim.vuets.name


Подробная информация о списке рассылки Moscow-pm