[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: vim/gvim



          Hi Andrey Chernomyrdin!

On Чтв, 28 Ноя 2002, Andrey Chernomyrdin wrote:

> Have a fun,
> 
> Вот тут вопрос к знатокам vim. Есть несколько директорий в которых находятся
> файлы в windows-1251, и хотелось-бы для этих диекторий сделать:
> 
> set encoding=8bit-cp1251
> set termencoding=8bit-koi8r
> 
> причем что-бы в других директориях перекодировка не включалась.

есть такой плагин для vim localvimrc.vim (see atach)
он позволяет в каждой директории иметь локальный .lvimrc 
все вложенные директории его наследуют и в каждой из директорий можно
переопределить все по своему. Короче принцип такой же как и в apache .htaccess 
очень удобный плагин...

в директории c cp1251 у меня лежит такой файл

$cat ~/work/cp1251-files/.lvimrc
au! BufRead ~/work/cp1251-files/* WK
au! BufWrite ~/work/cp1251-files/* KW  
au! BufWritePost ~/work/cp1251-files/* undo 


вот кусок файла ~/.vimrc который занимается перекодировкой

fun Recode2(line1, line2, arg)
  let lnum = line(".")
  let col = col(".")
  exe a:line1 . "," . a:line2 . "!recode " . a:arg
  exe lnum
  exe "normal " . col . "|"
endfun

com -range=% WK call Recode2(<line1>, <line2>, "mscyrl")
com -range=% KW call Recode2(<line1>, <line2>, "..mscyrl")



--
Best regards, Gleb Galkin 
  
  ... Нам pазyм дал стальные pyки-кpюки!

" Name: localvimrc.vim
" Version: 1.2
" Author: Markus Braun
" Date: 20021009
" $Id: localvimrc.vim,v 1.2 2002/10/09 11:17:46 mb Exp $
" Description: Search local vimrc files (".lvimrc") in the tree (root dir
" up to current dir) and load them.
" Installation: put this file into your plugin directory (~/.vim/plugin)
if exists("loaded_localvimrc")
	finish
end
let loaded_localvimrc = 1

function! Localvimrc() 
	let path = expand("%:p:h")
	if path == ""
		let path = getcwd()
	endif
	let path = path . "/"
	let currpath = "/"

	while 1
		let filename = currpath . ".lvimrc"
		if filereadable(filename)
			exec 'source ' . filename
			"echo 'Loaded ' . filename
		endif
		if path == currpath
			break
		endif
		let pos = matchend(path, "/", strlen(currpath))
		let currpath = strpart(path, 0, pos)
	endwhile
endfunction

" Call Localvimrc() when loading this plugin
if has("autocmd")
	autocmd BufNewFile,BufReadPre * call Localvimrc()
endif
" vim600:fdm=marker:commentstring="\ %s:

Reply to: