LINUX.ORG.RU
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"
DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от mos

по умолчанию. но дебиан отрубает.

У меня основная система - debian.

и точно знаешь, зачем тебе все эти настройки отступов, табов и тд?

Да. Без строчки

set backspace=indent,eol,start

Например, не работает backspace в insert-mode в дефолтном vim во фряхе (и вроде в винде).

Я этот vimrc таскаю между разными системами, на некоторых ваще самосборный vim, который хер знает, кто, хер знает, как, собирал.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от Medar

set antialias
вот это среди прочего выдает большого спеца, составлявшего эту помо^Wпортянку. Хотя может спец на макасоси сидит...
это тоже ничо
«colors mysheme
Мышите. Не мышите. (с)

mos ★★☆☆☆
()
Ответ на: комментарий от DELIRIUM

Например, не работает backspace в insert-mode в дефолтном vim во фряхе (и вроде в винде).

не совсем так, но в целом да. просто bs=«» это vi-угодно. И оно работает, но упорото конечно с нашей точки зрения. В линаксе нормальное значение в defaults.vim задано.

mos ★★☆☆☆
()
Ответ на: комментарий от mos

Если ТС только умеет копипасту, то какая разница откуда копипастить? А вот если хочет найти какие-то локальные удачные идеи и перенести себе, то куда еще идти, как не на гитхаб?

хикки-OCDшники

И поясни мне этот термин, я из деревни.

Medar ★★★★★
()
Последнее исправление: Medar (всего исправлений: 1)
  • Подсветка
    colo default
    syntax on
    
  • Настройка табов
    " 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
    
Crocodoom ★★★★★
()
Ответ на: комментарий от Xwo

Навигация стрелочками (а hjkl это и есть стрелочки, только удобнее расположенные) — самая неэффективная из всех возможных.

http://vimcasts.org/blog/2013/02/habit-breaking-habit-making/

Вот чем я пользуюсь для быстрого перемещения по коду

  • w, b, e, ge, W, B, E, gE
  • f, t, F, T
  • /word, ?word, n, N, *, #
  • $, ^
  • %
  • G, nG, gg
  • CTRL-U, CTRL-D, CTRL-E, CTRL-Y, CTRL-F, CTRL-B
Crocodoom ★★★★★
()
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>
anonymous
()
Ответ на: комментарий от Crocodoom

ну и я всем этим пользуюсь, и все думаю пользуются это базовые приёмы работы, уровень «турист» как говорится - иначе зачем нужен вим? но это не значит, что нужно принимать норкотики.

mos ★★☆☆☆
()
" 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
anonymous
()
Ответ на: комментарий от Xwo

когда текст не влезаeт в одну строку и переносится на другую j k по умолчанию пропускают перенесенную часть текста. gj gk не пропускают - обычно это желаемое поведение.

kazufukurou
()
30 июля 2025 г.
scriptencoding utf-8    " Explicitly define script encoding to be compatible with Windows and non-UTF locales

set nocompatible        " Enable vim features
set autoindent          " Copy indent from whe current line when opening a new line
set nobackup            " Wherever I need a backup, I use version control
set backspace=2         " Allow backspace over indentation, end-of-line and start-of-line
set noerrorbells        " Keep vim quiet
set showmatch           " Show the matching bracket for the last ')'?
set shortmess=atI       " Reduce the verbosity of the most common messages and remove :intro
set visualbell          " Keep vim quiet
set background=dark     " I'm running it on black-backgrounded xterm
set tildeop             " make a tilde ("~") an operator, to use it like "~W"
set tabstop=8           " Keep tabstop right for compatibility, but
set softtabstop=2       " use softtabstop to have 2 spaces per <Tab> hit
set shiftwidth=2        " and match it indent shift
set shiftround          " Round indent to the nearest shiftwidth value
set expandtab           " Use expandtab to avoid mixing tabs and spaces which breaks Python code
set smarttab
set hlsearch            " Highlight search - show the current search pattern
set wrapmargin=5        " Wrapmargin allows to wrap text automagically
set modeline modelines=3    " Use modeline
set hidden              " Do not complain about switching from unsaved buffer
set cpoptions-=z        " Make w in cw behave like in dw

" Make Y yank everything from the cursor to the end of the line, similar to C and D
noremap Y y$

if has('autocmd')
  filetype plugin indent on
endif

if has("syntax")
  syntax on
endif

" Settings specific to file types
autocmd FileType crontab,fstab,make setlocal noexpandtab shiftwidth=8
autocmd FileType html setlocal textwidth=132 colorcolumn=132
autocmd FileType c,python setlocal textwidth=132 colorcolumn=132 cursorline cindent cinkeys-=0#
autocmd FileType asciidoc,markdown setlocal textwidth=132 colorcolumn=132 spell
autocmd FileType yaml setlocal cursorline
autocmd FileType vim setlocal keywordprg=:help textwidth=132 colorcolumn=132
autocmd FileType xml setlocal equalprg=xmllint\ --format\ -
autocmd FileType json setlocal equalprg=jq\ .

anonymous
()
" Jump to the last position when reopening a file
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

" GUI option
set guifont=Cascadia_Mono:h14:cANSI:qDRAFT
set guioptions-=T
set guioptions-=m
colorscheme hybrid

" show whitespaces at the end of line
" switch it on and off with a <leader>l
if has('multi_byte') || has('listchars')
  set listchars=tab:»\ ,trail:·
  nnoremap <silent> <leader>l :setlocal list!<CR>
endif

function! Numbers()
" cycle between 3 settings
" 0. set nonumner, set norelativenumber
" 1. set number, set norelativenumber
" 2. set number, set relativenumber
  if  &l:number == 1 && &l:relativenumber == 0
    setlocal number
    setlocal relativenumber
  elseif &l:number == 1 && &l:relativenumber == 1
    setlocal nonumber
    setlocal norelativenumber
  else
    setlocal number
    setlocal norelativenumber
  endif
endfunction
nnoremap <silent> <leader>n :call Numbers()<CR>

" Use Q to replay q buffer, which I use most frequently
nnoremap <silent> Q @q
vnoremap <silent> Q :norm @q<cr>

" statusline
set laststatus=2  " Always show the status line
set noshowmode    " Not needed with status line highlights
highlight User1 cterm=NONE ctermfg=195 ctermbg=67 gui=NONE guifg=#d7ffff guibg=#5f87af
set statusline=\ %.20f    " Path to the file
set statusline+=%=        " Switch to the right side
set statusline+=%{&paste==1?'[PASTE]\ ':''} " Paste mode indicator
set statusline+=%c	  " Current column
set statusline+=%1*:%0*	  " Separator
set statusline+=%l        " Current line
set statusline+=%1*/%0*   " Separator
set statusline+=%L        " Total lines
set statusline+=\         " Padding

function! ChangeStatusColor(mode)
  if a:mode == 'i'
    highlight StatusLine cterm=NONE ctermfg=254 ctermbg=036 gui=NONE guifg=#e4e4e4 guibg=#00af87
    highlight User1 cterm=NONE ctermfg=057 ctermbg=036 gui=NONE guifg=#5f00ff guibg=#00af87
  elseif a:mode == 'r'
    highlight StatusLine cterm=NONE ctermfg=254 ctermbg=202 gui=NONE guifg=#e4e4e4 guibg=#ff5f00
    highlight User1 cterm=NONE ctermfg=075 ctermbg=202 gui=NONE guifg=#5fafff guibg=#ff5f00
  else
    highlight StatusLine cterm=NONE ctermfg=254 ctermbg=67 gui=NONE guifg=#e4e4e4 guibg=#5f87af
    highlight User1 cterm=NONE ctermfg=195 ctermbg=67 gui=NONE guifg=#d7ffff guibg=#5f87af
  endif
endfunction

autocmd InsertEnter * call ChangeStatusColor(v:insertmode)
autocmd InsertLeave * call ChangeStatusColor('n')


anonymous
()
" Generic mappings
nnoremap <silent> <leader>c :setlocal cursorline!<CR>
nnoremap <silent> <leader>p :setlocal paste!<CR>
nnoremap <silent> <leader>/ :nohls<enter>

" set lower timeout so that shift-O doesn't take as long
" see https://github.com/vim/vim/issues/24
set timeout timeoutlen=5000 ttimeoutlen=100

" Use buffers like tabs
nnoremap <silent> <C-N> :bnext<cr>
nnoremap <silent> <C-P> :bprevious<cr>
nnoremap <silent> <leader>1 :1buffer<cr>
nnoremap <silent> <leader>2 :2buffer<cr>
nnoremap <silent> <leader>3 :3buffer<cr>
nnoremap <silent> <leader>4 :4buffer<cr>
nnoremap <silent> <leader>5 :5buffer<cr>
nnoremap <silent> <leader>6 :6buffer<cr>
nnoremap <silent> <leader>7 :7buffer<cr>
nnoremap <silent> <leader>8 :8buffer<cr>
nnoremap <silent> <leader>9 :9buffer<cr>
noremap <C-k> <C-w>k
noremap <C-j> <C-w>j

" buftabline
let g:buftabline_show = 1
hi BufTabLineCurrent term=bold,reverse ctermfg=15 ctermbg=63 guifg=#ffffff guibg=#5f5fff
hi BufTabLineActive ctermfg=117 ctermbg=63 guifg=#b0e7ff guibg=#5f5fff
hi BufTabLineHidden ctermfg=7 ctermbg=63 guifg=#c0c0c0 guibg=#5f5fff
hi BufTabLineFill ctermfg=254 ctermbg=63 guifg=#f0f0f0 guibg=#5f5fff

" bufexplorer
let g:bufExplorerDisableDefaultKeyMapping=1
let g:bufExplorerDefaultHelp=0
nnoremap <silent> <leader>b :ToggleBufExplorer<cr>

" Built-in plugin to improve % behaviour
silent! packadd! matchit

" when editing vim configs use K to call for :help

" create tags for source code
command! Tags !ctags -R .

" netrw
let g:netrw_banner = 0
nnoremap <silent> <leader>e :Explore<cr>

" disable arrows and force hjkl use for movement
map <Up> <nop>
map <Down> <nop>
map <Left> <nop>
map <Right> <nop>

" Make ^u and ^w to be a separate change in undo history
inoremap <C-U> <C-G>u<C-U>
inoremap <C-W> <C-G>u<C-W>

" vimwiki: use Markdown
let g:vimwiki_list = [{'path': '~/.notes/', 'ext': '.md', 'syntax': 'markdown'}]

" showmarks
highlight ShowMarksHLl ctermfg=154 ctermbg=232 guifg=#87d7ff
highlight ShowMarksHLu ctermfg=154 ctermbg=232 guifg=#87afff
highlight ShowMarksHLo ctermfg=154 ctermbg=232 guifg=#87afff
let g:showmarks_textlower="▸"
let g:showmarks_textupper="▸"
let g:showmarks_textother="▸"
let g:showmarks_include="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
anonymous
()