Updated 2026-06-17
The configuration file for the vim editor.
" ################### basics #####################
" allow for more features
set nocompatible
" enable the syntax highlighting
syntax on
" set indentation and filetype pluging on at startup
filetype plugin indent on
" allow the magic vim config string in source files
set modeline
"Reformat current paragraph with Ctrl-j
map gqip
set wildmenu
"backups go there
set backupdir=~/.backups,.,/tmp
"swap files go there
set directory=~/.backups,.,/tmp
"do not beep on errors
set noerrorbells
"ignorecase: ignore the case in search patterns? NO!
set ignorecase
"be smart at the beginning of lines
"set smarttab
"indent with two spaces when hitting tab
set shiftwidth=2
"expand all tabs to spaces according to shiftwidth parameter
set expandtab
set tabstop=2
"always set autoindenting on
set autoindent
set smartindent
"use utf-8 is possible, fallback to iso-8859-5 otherwise
set fileencodings=utf-8,iso-8859-1
set encoding=utf-8
set fileformat=unix
" do not wrap text
set nowrap
" for those used to the dark XTerm
set background=dark
" Show tabs, trailing spaces, long lines
set list listchars=tab:→\ ,trail:¤
"enable 256 colors in xterm > 209
"set t_Co=256
"set langmap=ж;;
"set langmap=ё`,йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,э',яz,чx,сc,мv,иb,тn,ьm,б\,,ю.,Ё~,ЙQ,ЦW,УE,КR,ЕT,HY,ГU,ШI,ЩO,ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж:,Э\",ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б<,Ю>
"langmap does not work in utf-8
map ё `
map й q
map ц w
map у e
map к r
map е t
map н y
map г u
map ш i
map щ o
map з p
map х [
map ъ ]
map ф a
map ы s
map в d
map а f
map п g
map р h
map о j
map л k
map д l
map ж ;
map э '
map я z
map ч x
map с c
map м v
map и b
map т n
map ь m
map б ,
map ю .
map Ё ~
map Й Q
map Ц W
map У E
map К R
map Е T
map Н Y
map Г U
map Ш I
map Щ O
map З P
map Х {
map Ъ }
map Ф A
map Ы S
map В D
map А F
map П G
map Р H
map О J
map Л K
map Д L
map Ж :
map Э "
map Я Z
map Ч X
map С C
map М V
map И B
map Т N
map Ь M
map Б <
map Ю >
" #################### XML #######################
function XMLLintValidate()
!xmllint --valid --noout --catalogs %
endfunction
nmap ,l :call XMLLintValidate()
" pretty-print document
vmap ,px !xmllint --format -
" pretty-print current line
"nmap ,px !!xmllint --format -
"pretty-print fragment
vmap ,pf 'msO[before]mb'>omeo[after]ma'sV'e!xmllint --format -'bj2dd<'a'ak2dd'bdd
" ################### fonts #####################
"Works under X Window
"set guifont=-*-serenetypewriter-medium-r-*-*-12-*-*-*-*-*-iso10646-1
"Works on Wi32
"so $VIMRUNTIME/mswin.vim
"set guifont=courier_new_cyr:h10
" ################## goodies ####################
iabbrev mymail "Alexander Mikhailian"
iabbrev dts =strftime("%d/%m/%Y %H:%M")
" use mail.vim by Artem Chuprina to format fido-like quotes
autocmd BufRead /tmp/mutt* :source ~/.vim/ftplugin/mail.vim
autocmd BufRead ~/.article* :source ~/.vim/ftplugin/mail.vim
autocmd FileType xml :source ~/.vim/ftplugin/mail.vim
autocmd FileType text setlocal textwidth=72
if has("autocmd")
" Drupal *.module files.
augroup module
autocmd BufRead *.module set filetype=php
augroup END
endif
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event
" handler (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
" visual selection does not drop while shifting the block to >
vnoremap < >gv
" create xhtml from highlited code
let html_use_css = 1
let use_xhtml =1
"write the visual selection as HTML into a new buffer
fun! MyToHtml(line1, line2)
exec a:line1.','.a:line2.'TOhtml'
%g//