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:
- References:
- vim/gvim
- From: Andrey Chernomyrdin <andrey@excom.spb.su>