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

Maxim Vuets maxim.vuets на gmail.com
Пт Сен 5 11:10:19 PDT 2008


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<---------------

Я попытался сэмулировать логику работы emacs, то есть:
In shell scripts, the first line is used to identify the script interpreter,
so you cannot put any local variables there. To accommodate this,
Emacs looks for local variable specifications in the second line
when the first line specifies an interpreter.

Это мой первый vim-скрипт (=

-- 
Hoc est simplicissimum!
maxim.vuets.name


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