LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

.vimrc для программиста?

Я бы добавил (я сам пишу на С, так что выбор несколько своеобразный, да):

1 syntastic. Это мастхэвная вещь для того, чтобы проверить через splint косяки и ошибки прямо в редакторе. syntastic умеет проверять не только С/С++, а принципе, он и руби и питон с похапе обработать может. И bash тоже. Но для С/С++ это то, что я как доктор могу рекомендовать.

2 Если используете doxygen, то добавьте ещё this

3 Для перезагрузки .vimrc и корректировки отметки времени редактирования я бы сделал так:

" Reload .vimrc after it's saving.
autocmd! BufWritePost $MYVIMRC source $MYVIMRC
" Rewrite timestamp in .vimrc.
autocmd! BufWritePre $MYVIMRC call setline(1, '" Last update: '.strftime("%d.%m.%Y %H:%M"))

4 Спеллчекер:

" Add language spelling.
set spell spelllang=en,ru

" Check language spelling.
nmap <F3> :setlocal spell spelllang=ru,en<CR>
imap <F3> <ESC>:setlocal spell spelllang=ru,en<CR>i
nmap <S-F3> :setlocal nospell<CR>
imap <S-F3> <ESC>:setlocal nospell<CR>i

5 Назначения клавиш (на мой вкус):

" Key settings.
" F2 to save current file.
map <F2> :w<CR>
nmap <F2> <Esc>:w<CR>
imap <F2> <Esc>:w<CR>

" F12 to quit without saving.
map <F12> :q!<CR>
nmap <F12> <Esc>:q!<CR>
imap <F12> <Esc>:q!<CR>

" Some fixes.
cnoreabbrev W! w!
cnoreabbrev Q! q!
cnoreabbrev Qall! qall!
cnoreabbrev Wq wq
cnoreabbrev Wa wa
cnoreabbrev wQ wq
cnoreabbrev WQ wq
cnoreabbrev W w
cnoreabbrev Q q
cnoreabbrev Qall qall

6 Работа со вкладками:

" Работа с вкладками.
" Открываем новую по Ctl+T и закрываем по Ctrl+W.
nmap <C-t> :tabnew<CR>
imap <C-t> <Esc>:tabnew<CR>
nmap <C-w> :tabclose<CR>
imap <C-w> <Esc>:tabclose<CR>

" Переключаемся между вкладками Shift+TAB.
map <S-TAB> :tabprevious<CR>
nmap <S-TAB> :tabprevious<CR>
imap <S-TAB> <Esc>:tabprevious<CR>i

7 Парные скобки:

" Auto pairing.
imap [ []<left>
imap ( ()<left>
imap { {}<left>
imap < <><left>
imap {<CR> {<CR>}<ESC>O
imap {;<CR> {<CR>};<ESC>O

8 Для написания bash-скриптов (делаем скрипт сразу исполняемым):

" Settings for bash scripts.
" Проверяем запись shell-script. Если он не исполняемый, то делаем его
" исполняемым. Если уже исполняемый, то просто сохраняем.
au BufWritePost *.sh if FileExecutable("%") | if getline(1) =~ "^#!" | silent !chmod u+x % | endif | endif

" Проверка файла с расширением .sh на исполняемость.
function! FileExecutable(fname)
	execute "silent! ! test -x" a:fname
	return v:shell_error
endfunction

9 Про кодировки:

set enc=utf-8
set fileformat=unix
set ffs=unix,dos,mac
set termencoding=utf-8
set fileencodings=utf-8,koi8-r,cp1251,cp866

10 Для установки плагинов я лично использую pathogen, но это чисто моя такая вкусовщина.

Ну вот, как-то вот так…

P.S. Airline не использую, больно жирный вариант, IMHO. Я вот так:

" Статусная строка.
set laststatus=2
set statusline=%1*\ %f%m%r%h%w\%=%([%{&ff}\|%{(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\")}%k\|%Y]%)\ %([%l,%v][%p%%]\ %)

P.P.S. SnipMate забыл и коллекцию сниппетов. Там под разные языки есть, в добавок коллекция настраиваемая, её можно пополнять своими сниппетами.

И vimwiki до кучи. Можно чисто локально вести заметки и справочники, со списком TODO, генерировать статические html и грузить на веб-сервер как такую статическую wiki прямо не выходя из vim.

Исправление Moisha_Liberman, :

.vimrc для программиста?

Я бы добавил (я сам пишу на С, так что выбор несколько своеобразный, да):

1 syntastic. Это мастхэвная вещь для того, чтобы проверить через splint косяки и ошибки прямо в редакторе. syntastic умеет проверять не только С/С++, а принципе, он и руби и питон с похапе обработать может. И bash тоже. Но для С/С++ это то, что я как доктор могу рекомендовать.

2 Если используете doxygen, то добавьте ещё this

3 Для перезагрузки .vimrc и корректировки отметки времени редактирования я бы сделал так:

" Reload .vimrc after it's saving.
autocmd! BufWritePost $MYVIMRC source $MYVIMRC
" Rewrite timestamp in .vimrc.
autocmd! BufWritePre $MYVIMRC call setline(1, '" Last update: '.strftime("%d.%m.%Y %H:%M"))

4 Спеллчекер:

" Add language spelling.
set spell spelllang=en,ru

" Check language spelling.
nmap <F3> :setlocal spell spelllang=ru,en<CR>
imap <F3> <ESC>:setlocal spell spelllang=ru,en<CR>i
nmap <S-F3> :setlocal nospell<CR>
imap <S-F3> <ESC>:setlocal nospell<CR>i

5 Назначения клавиш (на мой вкус):

" Key settings.
" F2 to save current file.
map <F2> :w<CR>
nmap <F2> <Esc>:w<CR>
imap <F2> <Esc>:w<CR>

" F12 to quit without saving.
map <F12> :q!<CR>
nmap <F12> <Esc>:q!<CR>
imap <F12> <Esc>:q!<CR>

" Some fixes.
cnoreabbrev W! w!
cnoreabbrev Q! q!
cnoreabbrev Qall! qall!
cnoreabbrev Wq wq
cnoreabbrev Wa wa
cnoreabbrev wQ wq
cnoreabbrev WQ wq
cnoreabbrev W w
cnoreabbrev Q q
cnoreabbrev Qall qall

6 Работа со вкладками:

" Работа с вкладками.
" Открываем новую по Ctl+T и закрываем по Ctrl+W.
nmap <C-t> :tabnew<CR>
imap <C-t> <Esc>:tabnew<CR>
nmap <C-w> :tabclose<CR>
imap <C-w> <Esc>:tabclose<CR>

" Переключаемся между вкладками Shift+TAB.
map <S-TAB> :tabprevious<CR>
nmap <S-TAB> :tabprevious<CR>
imap <S-TAB> <Esc>:tabprevious<CR>i

7 Парные скобки:

" Auto pairing.
imap [ []<left>
imap ( ()<left>
imap { {}<left>
imap < <><left>
imap {<CR> {<CR>}<ESC>O
imap {;<CR> {<CR>};<ESC>O

8 Для написания bash-скриптов (делаем скрипт сразу исполняемым):

" Settings for bash scripts.
" Проверяем запись shell-script. Если он не исполняемый, то делаем его
" исполняемым. Если уже исполняемый, то просто сохраняем.
au BufWritePost *.sh if FileExecutable("%") | if getline(1) =~ "^#!" | silent !chmod u+x % | endif | endif

" Проверка файла с расширением .sh на исполняемость.
function! FileExecutable(fname)
	execute "silent! ! test -x" a:fname
	return v:shell_error
endfunction

9 Про кодировки:

set enc=utf-8
set fileformat=unix
set ffs=unix,dos,mac
set termencoding=utf-8
set fileencodings=utf-8,koi8-r,cp1251,cp866

10 Для установки плагинов я лично использую pathogen, но это чисто моя такая вкусовщина.

Ну вот, как-то вот так…

P.S. Airline не использую, больно жирный вариант, IMHO. Я вот так:

" Статусная строка.
set laststatus=2
set statusline=%1*\ %f%m%r%h%w\%=%([%{&ff}\|%{(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\")}%k\|%Y]%)\ %([%l,%v][%p%%]\ %)

Исходная версия Moisha_Liberman, :

Судя по YouCompleteMe это...

.vimrc для программиста?

Я бы добавил (я сам пишу на С, так что выбор несколько своеобразный, да):

1 syntastic. Это мастхэвная вещь для того, чтобы проверить через splint косяки и ошибки прямо в редакторе. syntastic умеет проверять не только С/С++, а принципе, он и руби и питон с похапе обработать может. И bash тоже. Но для С/С++ это то, что я как доктор могу рекомендовать.

2 Если используете doxygen, то добавьте ещё this

3 Для перезагрузки .vimrc и корректировки отметки времени редактирования я бы сделал так:

" Reload .vimrc after it's saving.
autocmd! BufWritePost $MYVIMRC source $MYVIMRC
" Rewrite timestamp in .vimrc.
autocmd! BufWritePre $MYVIMRC call setline(1, '" Last update: '.strftime("%d.%m.%Y %H:%M"))

4 Спеллчекер:

" Add language spelling.
set spell spelllang=en,ru

" Check language spelling.
nmap <F3> :setlocal spell spelllang=ru,en<CR>
imap <F3> <ESC>:setlocal spell spelllang=ru,en<CR>i
nmap <S-F3> :setlocal nospell<CR>
imap <S-F3> <ESC>:setlocal nospell<CR>i

5 Назначения клавиш (на мой вкус):

" Key settings.
" F2 to save current file.
map <F2> :w<CR>
nmap <F2> <Esc>:w<CR>
imap <F2> <Esc>:w<CR>

" F12 to quit without saving.
map <F12> :q!<CR>
nmap <F12> <Esc>:q!<CR>
imap <F12> <Esc>:q!<CR>

" Some fixes.
cnoreabbrev W! w!
cnoreabbrev Q! q!
cnoreabbrev Qall! qall!
cnoreabbrev Wq wq
cnoreabbrev Wa wa
cnoreabbrev wQ wq
cnoreabbrev WQ wq
cnoreabbrev W w
cnoreabbrev Q q
cnoreabbrev Qall qall

6 Работа со вкладками:

" Работа с вкладками.
" Открываем новую по Ctl+T и закрываем по Ctrl+W.
nmap <C-t> :tabnew<CR>
imap <C-t> <Esc>:tabnew<CR>
nmap <C-w> :tabclose<CR>
imap <C-w> <Esc>:tabclose<CR>

" Переключаемся между вкладками Shift+TAB.
map <S-TAB> :tabprevious<CR>
nmap <S-TAB> :tabprevious<CR>
imap <S-TAB> <Esc>:tabprevious<CR>i

7 Парные скобки:

" Auto pairing.
imap [ []<left>
imap ( ()<left>
imap { {}<left>
imap < <><left>
imap {<CR> {<CR>}<ESC>O
imap {;<CR> {<CR>};<ESC>O

8 Для написания bash-скриптов (делаем скрипт сразу исполняемым):

" Settings for bash scripts.
" Проверяем запись shell-script. Если он не исполняемый, то делаем его
" исполняемым. Если уже исполняемый, то просто сохраняем.
au BufWritePost *.sh if FileExecutable("%") | if getline(1) =~ "^#!" | silent !chmod u+x % | endif | endif

" Проверка файла с расширением .sh на исполняемость.
function! FileExecutable(fname)
	execute "silent! ! test -x" a:fname
	return v:shell_error
endfunction

9 Про кодировки:

set enc=utf-8
set fileformat=unix
set ffs=unix,dos,mac
set termencoding=utf-8
set fileencodings=utf-8,koi8-r,cp1251,cp866

10 Для установки плагинов я лично использую pathogen, но это чисто моя такая вкусовщина.

Ну вот, как-то вот так…