История изменений
Исправление router, (текущая версия) :
set autoindent " после строки, в которой уже есть отступ, добавлять такой же на новую
" а вот это лишнее и чаще мешает:
set nosmartindent
set nocindent
" по умолчанию будут tab'ы
" set expandtab " вставлять пробелы, а не табы
set tabstop=4
set shiftwidth=4
" но иногда пробелы
" в зависимости от типа файла
au FileType yaml setlocal tabstop=2 shiftwidth=2 expandtab
au FileType json setlocal tabstop=2 shiftwidth=2 expandtab
au FileType python setlocal tabstop=4 shiftwidth=4 expandtab
ну и до кучи
syntax on " подсветка синтаксиса
colors default
set background=dark " считать, что фон терминала - тёмный
highlight Comment ctermfg=darkgreen " цвет комментариев
" задрали менять дефолтное поведение
" не путать буфер vim и иксов
set mouse=
set nocompatible " отказ от совместимости с vi
set ruler " показывать координаты курсора в строке состояния
set statusline=%<%f%h%m%r%=%({%{&fileformat},%{&fileencoding},%{&encoding}}%)\ %-6(0x%B%)\ %-10(%l,%c%V%)\ %7P
set laststatus=2
set incsearch " поиск по мере набора
set hlsearch " выделение всех найденных слов
" set ignorecase
" set smartcase
"
" *********
" кодировки
" *********
"
" кодировка _всех_ внутренних буферов
set encoding=utf8
" кодировка для сохранения нового файла
set fileencoding=utf8
" кодировки, перебираемые при автоопределении кодировки
set fileencodings=utf8,koi8-r,cp1251,cp866
" кодировка терминала
set termencoding=utf8
" кодировка этого скрипта ;o)
scriptencoding utf8
" *****************
" назначение клавиш
" *****************
map <F8> :execute RotateEnc()<CR>
" сохранение текущего буфера
imap <F2> <ESC>:w<CR>a<CR>
nmap <F2> :w<CR>
" сохранение всех буферов
imap <S-F2> <ESC>:wa<CR>a<CR>
nmap <S-F2> :wa<CR>
" Часто открыто много файлов,
" что бы удобнее было переходить:
" nmap <C-H> :bp<CR>
" imap <C-H> <ESC> :bp<CR>i<Right>
" nmap <C-L> :bn<CR>
" imap <C-L> <ESC> :bn<CR>i<Right>
nmap <C-H> :tabp<CR>
imap <C-H> <ESC> :tabp<CR>i<Right>
nmap <C-L> :tabn<CR>
imap <C-L> <ESC> :tabn<CR>i<Right>
imap <M-W> <Esc>:set<Space>wrap!<CR>a<CR>
nmap <M-W> :set<Space>wrap!<CR>
imap <C-Space> <C-N>" автодополнение по Control+Space
" выход
map <F10> :q<CR>
map <C-F10> :q!<CR>
map <S-F10> :qa<CR>
map <S-C-F10> :qa!<CR>
" проверка орфографии
nmap <F4> :w!<CR>:!ispell -d russian %<CR>:!ispell -d english %<CR>:e! %<CR>
" компиляция и просмотр ошибок
map <F5> :wa<CR>:make<CR><CR>
map <F6> :cope<CR>
"map <F11> :cp<CR>
" прыгнуть на следующую...
"map <F12> :cn<CR>
" ...предыдущую ошибку
" *******
" функции
" *******
let b:encindex=0
function! RotateEnc() " сменить кодировку
let y = -1
while y == -1
let encstring = "#8bit-cp1251#8bit-cp866#ucs-2le#utf-8#koi8-r#"
let x = match(encstring,"#",b:encindex)
let y = match(encstring,"#",x+1)
let b:encindex = x+1
if y == -1
let b:encindex = 0
else
let str = strpart(encstring,x+1,y-x-1)
return ":e ++enc=".str
endif
endwhile
endfunction
З.Ы. теперь это топик о vim %)
Исходная версия router, :
set autoindent " после строки, в которой уже есть отступ, добавлять такой же на новую
" а вот это лишнее и чаще мешает:
set nosmartindent
set nocindent
" по умолчанию будут tab'ы
" set expandtab " вставлять пробелы, а не табы
set tabstop=4
set shiftwidth=4
" но иногда пробелы
" в зависимости от типа файла
au FileType yaml setlocal tabstop=2 shiftwidth=2 expandtab
au FileType json setlocal tabstop=2 shiftwidth=2 expandtab
au FileType python setlocal tabstop=4 shiftwidth=4 expandtab
ну и до кучи
syntax on " подсветка синтаксиса
colors default
set background=dark " считать, что фон терминала - тёмный
highlight Comment ctermfg=darkgreen " цвет комментариев
" задрали менять дефолтное поведение
" не путать буфер vim и иксов
set mouse=
set nocompatible " отказ от совместимости с vi
set ruler " показывать координаты курсора в строке состояния
set statusline=%<%f%h%m%r%=%({%{&fileformat},%{&fileencoding},%{&encoding}}%)\ %-6(0x%B%)\ %-10(%l,%c%V%)\ %7P
set laststatus=2
set incsearch " поиск по мере набора
set hlsearch " выделение всех найденных слов
" set ignorecase
" set smartcase
"
" *********
" кодировки
" *********
"
" кодировка _всех_ внутренних буферов
set encoding=utf8
" кодировка для сохранения нового файла
set fileencoding=utf8
" кодировки, перебираемые при автоопределении кодировки
set fileencodings=utf8,koi8-r,cp1251,cp866
" кодировка терминала
set termencoding=utf8
" кодировка этого скрипта ;o)
scriptencoding utf8
" *****************
" назначение клавиш
" *****************
map <F8> :execute RotateEnc()<CR>
" сохранение текущего буфера
imap <F2> <ESC>:w<CR>a<CR>
nmap <F2> :w<CR>
" сохранение всех буферов
imap <S-F2> <ESC>:wa<CR>a<CR>
nmap <S-F2> :wa<CR>
" Часто открыто много файлов,
" что бы удобнее было переходить:
" nmap <C-H> :bp<CR>
" imap <C-H> <ESC> :bp<CR>i<Right>
" nmap <C-L> :bn<CR>
" imap <C-L> <ESC> :bn<CR>i<Right>
nmap <C-H> :tabp<CR>
imap <C-H> <ESC> :tabp<CR>i<Right>
nmap <C-L> :tabn<CR>
imap <C-L> <ESC> :tabn<CR>i<Right>
imap <M-W> <Esc>:set<Space>wrap!<CR>a<CR>
nmap <M-W> :set<Space>wrap!<CR>
imap <C-Space> <C-N>" автодополнение по Control+Space
" выход
map <F10> :q<CR>
map <C-F10> :q!<CR>
map <S-F10> :qa<CR>
map <S-C-F10> :qa!<CR>
" проверка орфографии
nmap <F4> :w!<CR>:!ispell -d russian %<CR>:!ispell -d english %<CR>:e! %<CR>
" компиляция и просмотр ошибок
map <F5> :wa<CR>:make<CR><CR>
map <F6> :cope<CR>
"map <F11> :cp<CR>
" прыгнуть на следующую...
"map <F12> :cn<CR>
" ...предыдущую ошибку
" *******
" функции
" *******
let b:encindex=0
function! RotateEnc() " сменить кодировку
let y = -1
while y == -1
let encstring = "#8bit-cp1251#8bit-cp866#ucs-2le#utf-8#koi8-r#"
let x = match(encstring,"#",b:encindex)
let y = match(encstring,"#",x+1)
let b:encindex = x+1
if y == -1
let b:encindex = 0
else
let str = strpart(encstring,x+1,y-x-1)
return ":e ++enc=".str
endif
endwhile
endfunction
З.Ы. теперь это топик о vim %)