syntax on
set cindent
set tabstop=2 shiftwidth=2
set equalprg=astyle
set expandtab
set switchbuf=usetab
set cino=N-s
set cinoptions+=g0
set colorcolumn=80
set nohlsearch
set modeline
set backspace=indent,eol,start
set bg=dark
autocmd BufRead,BufNewFile *.cmake,CMakeLists setf cmake
filetype plugin on
"doxygen
let g:DoxygenToolkit_startCommentTag = "/*! "
let g:DoxygenToolkit_startCommentBlock = "/* "
let g:DoxygenToolkit_briefTag_pre = "\\brief "
let g:DoxygenToolkit_templateParamTag_pre = "\\tparam "
let g:DoxygenToolkit_paramTag_pre = "\\param "
let g:DoxygenToolkit_returnTag = "\\return "
let g:DoxygenToolkit_throwTag_pre = "\\throw "
let g:DoxygenToolkit_fileTag = "\\file "
let g:DoxygenToolkit_classTag = "\\class "
let g:DoxygenToolkit_briefTag_className = "yes"
let g:DoxygenToolkit_briefTag_structName = "yes"
let g:DoxygenToolkit_briefTag_enumName = "yes"
let g:DoxygenToolkit_briefTag_namespaceName = "yes"
let g:DoxygenToolkit_briefTag_funcName = "yes"
set antialias вот это среди прочего выдает большого спеца, составлявшего эту помо^Wпортянку. Хотя может спец на макасоси сидит... это тоже ничо «colors mysheme Мышите. Не мышите. (с)
Например, не работает backspace в insert-mode в дефолтном vim во фряхе (и вроде в винде).
не совсем так, но в целом да. просто bs=«» это vi-угодно. И оно работает, но упорото конечно с нашей точки зрения. В линаксе нормальное значение в defaults.vim задано.
Если ТС только умеет копипасту, то какая разница откуда копипастить? А вот если хочет найти какие-то локальные удачные идеи и перенести себе, то куда еще идти, как не на гитхаб?
" Number of spaces that a <Tab> in the file counts for
set tabstop=4
" Number of spaces to use for each step of (auto)indent
set shiftwidth=4
" Number of spaces that a <Tab> counts for while performing editing operations
set softtabstop=4
" Use the appropriate number of spaces to insert a <Tab>
set expandtab
" When on, a <Tab> in front of a line inserts blanks according to
" 'shiftwidth'. 'tabstop' or 'softtabstop' is used in other places.
" A <BS> will delete a 'shiftwidth' worth of space at the start of the line
set smarttab
" Copy indent from current line when starting a new line
set autoindent
" Do smart autoindenting when starting a new line
set smartindent
" Ctrl+Tab for <Tab> character
:inoremap <S-Tab> <C-V><Tab>
Разделение окон
" Splitting a window will put the new window below or right the current one
set splitright
set splitbelow
Типы файлов
" Filetype for C++ headers without extension
au BufNewFile,BufRead * if search('-\*- C++ -\*-', 'nw') | set ft=cpp | endif
" Filetype for SWIG
au BufNewFile,BufRead *.i set ft=swig
au BufNewFile,BufRead *.swg set ft=swig
Удаление пробелов в конце строк
" Delete trailing spaces
au FileType c,cpp,python,make,sh,swig,cuda au BufWritePre <buffer> %s/\s\+$//e
Маркер длинных строк (для кода)
" 79 symbols limiter
set colorcolumn=80
highlight ColorColumn ctermbg=1
Перенос длинных строк (для текста)
" Maximum width of text that is being inserted
au FileType tex,text set textwidth=78
au FileType tex,text set formatoptions=awtqc
Поддержка русской раскладки (да, vim - боль)
" Full support for russian keyboard
set laststatus=2 " Always show status bar
set keymap=russian-jcukenwin " Keyboard layout switch on <C-^>
set iminsert=0 " Default layout for insert = enlgish
set imsearch=0 " Default layout for search and commands = english
function! MyKeyMapHighlight()
if &iminsert == 0 " Different colors for different layouts for status bar
hi StatusLine ctermfg=White guifg=White
else " а при русской - зеленого.
hi StatusLine ctermfg=DarkRed guifg=DarkRed
endif
endfunction
call MyKeyMapHighlight() " Setting color during start
autocmd WinEnter * :call MyKeyMapHighlight() " Update layout info when changing windows
" Ctrl+L for switching
cmap <silent> <C-L> <C-^>
imap <silent> <C-L> <C-^>X<Esc>:call MyKeyMapHighlight()<CR>a<C-H>
nmap <silent> <C-L> a<C-^><Esc>:call MyKeyMapHighlight()<CR>
vmap <silent> <C-L> <Esc>a<C-^><Esc>:call MyKeyMapHighlight()<CR>gv
Единственный плагин, который сейчас использую - vim-hardtime
" Vim-hardtime
let g:hardtime_default_on = 1
let g:hardtime_timeout = 3000
let g:hardtime_showmsg = 1
set nocompatible
set number
set wrap
set linebreak
syntax on
set tabstop=4
set shiftwidth=4
set smarttab
set et
set ai
set cin
set si
set showmatch
set hlsearch
set incsearch
set ignorecase
set smartcase
set lz
set listchars=tab:··
set list
set wildmenu
set clipboard+=unnamed
set backspace=indent,eol,start
" vim-bracketed-paste plugin
" https://github.com/ConradIrwin/vim-bracketed-paste
if !exists("g:bracketed_paste_tmux_wrap")
let g:bracketed_paste_tmux_wrap = 1
endif
let &t_ti .= "\<Esc>[?2004h"
let &t_te .= "\<Esc>[?2004l"
function! XTermPasteBegin(ret)
set pastetoggle=<f29>
set paste
return a:ret
endfunction
execute "set <f28>=\<Esc>[200~"
execute "set <f29>=\<Esc>[201~"
map <expr> <f28> XTermPasteBegin("i")
imap <expr> <f28> XTermPasteBegin("")
vmap <expr> <f28> XTermPasteBegin("c")
cmap <f28> <nop>
cmap <f29> <nop>
ну и я всем этим пользуюсь, и все думаю пользуются это базовые приёмы работы, уровень «турист» как говорится - иначе зачем нужен вим? но это не значит, что нужно принимать норкотики.
" wrong defaults
set nocompatible
set backspace=indent,eol,start
set ruler
" indentation
set autoindent
set expandtab
set shiftwidth=2
set tabstop=2
" text color
syntax enable
set background=dark
colorscheme koehler
set hlsearch
" gui
set guioptions-=T
set guifont=Monospace\ 10
set foldcolumn=3
set linebreak
" delete trailing spaces
autocmd BufWritePre * :%s/\s\+$//e
когда текст не влезаeт в одну строку и переносится на другую j k по умолчанию пропускают перенесенную часть текста. gj gk не пропускают - обычно это желаемое поведение.