" c: Automatically break comments using the textwidth value. " r: Automatically insert the comment leader when hitting in insert mode. " o: Automatically insert the comment leader when hitting 'o' or 'O' in normal mode. " n: Recognize numbered lists. When hitting in insert mode. " m: Automatically break the current line before inserting a new comment line. set formatoptions+=cronm " This sets the width of a tab character to 4 spaces. set tabstop=4 " This sets the number of spaces used when the key is pressed in insert " mode to 4. set softtabstop=4 " This sets the number of spaces used for each indentation level when using " the '>' and '<' commands, as well as the autoindent feature. set shiftwidth=4 " This setting enables automatic indentation, which will copy the indentation " of the current line when starting a new line. set autoindent set smartindent " This disables the automatic conversion of tabs to spaces when you press the " key. set expandtab set smarttab " Save 1,000 items in history set history=1000 " Show the line and column number of the cursor position set ruler " Display the incomplete commands in the bottom right-hand side of your screen. set showcmd " Display completion matches on your status line set wildmenu " Show a few lines of context around the cursor set scrolloff=5 " Highlight search matches set hlsearch " Enable incremental searching set incsearch " Ignore case when searching set ignorecase " Override the 'ignorecase' option if the search pattern contains upper case characters. set smartcase " This enables the use of the mouse in all modes (normal, visual, insert, " command-line, etc.). set mouse=a " This displays relative line numbers in the left margin. set number set relativenumber " This disables the creation of backup files. set nobackup " To allow moving to different buffer without saving the current buffer. set hidden " This disables the creation of swap files. set noswapfile " Automatically reload files when they change set autoread " Enable spell checking "set spell "set spelllang=en " Highlight the current line "set cursorline " Highlight the 100th column " set colorcolumn=100 " Set text width to 100 set textwidth=100 " This maps the '<' and '>' keys in visual mode to shift the selected text one " shift width to the left or right and reselect the shifted text. vnoremap < >gv " The next four lines define key mappings for switching between windows using " Ctrl + hjkl keys nmap :wincmd k nmap :wincmd j nmap :wincmd h nmap :wincmd l " The next four lines define key mappings for resizing windows using Alt + " hjkl keys: map :vertical res -5 map :vertical res +5 map :res -5 map :res +5 " These lines define key mappings for moving the cursor 10 spaces at a time " using Shift + arrow keys: nmap 10l nmap 10h nmap 10j nmap 10k " Enable folding set foldenable " Configure fold method set foldmethod=marker " Set the fold level to start with all folds open set foldlevelstart=99 " Set the fold nesting level (default is 20) set foldnestmax=10 " Automatically close folds when the cursor leaves them set foldclose=all " Open folds upon all motion events set foldopen=all "Plugin "=========================================================================================================== filetype plugin indent on syntax on " Enhanced C and C++ highlighting for vim "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " Disable function highlighting (affects both C and C++ files) let g:cpp_function_highlight = 1 " Enable highlighting of C++11 attributes let g:cpp_attributes_highlight = 1 " Highlight struct/class member variables (affects both C and C++ files) let g:cpp_member_highlight = 1 " Disable highlighting of type names in class, struct, union, enum, using, and " concept declarations (affects both C and C++ files) let g:cpp_type_name_highlight = 1 " Highlight operators (affects both C and C++ files) let g:cpp_operator_highlight = 1 " Put all standard C and C++ keywords under Vim's highlight group 'Statement' " (affects both C and C++ files) let g:cpp_simple_highlight = 1 " Color scheme for vim " vscode "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " If you don't like many colors and prefer the conservative style of the standard Visual Studio let g:codedark_conservative=1 " If you like the new dark modern colors (Needs feedback!) let g:codedark_modern=1 " Activates italicized comments (make sure your terminal supports italics) let g:codedark_italics=1 " Make the background transparent let g:codedark_transparent=1 " If you have vim-airline, you can also enable the provided theme let g:airline_theme = 'codedark' colorscheme codedark " Tagbar "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ nmap :TagbarToggle " Airline "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " Set this. Airline will handle the rest. " let g:airline#extensions#ale#enabled = 1 let g:airline_theme = 'dark' let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#formatter = 'default' " YCM : YouCompleteMe "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ function! s:YCMEnable() abort silent! packadd YouCompleteMe echo "YouCompleteMe enabled" endfunction command! YCMOn call s:YCMEnable() " ALE : Linting "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ function! s:ALEEnable() abort silent! packadd ale let g:ale_linters = { \ 'cpp': ['cppcheck'], \ 'c': ['cppcheck'], \ } " General settings let g:ale_linters_explicit = 1 let g:ale_completion_enabled = 1 let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' let g:ale_set_balloons=1 let g:ale_hover_to_floating_preview=1 let g:ale_use_global_executables = 1 let g:ale_sign_column_always = 1 let g:ale_disable_lsp = 1 " Set this. Airline will handle the rest. let g:airline#extensions#ale#enabled = 1 echo "ALE enabled" endfunction function! s:ALEDisable() abort let g:ale_linters = { \ 'cpp': [''], \ 'c': [''], \ } " General settings let g:ale_linters_explicit = 0 let g:ale_completion_enabled = 0 let g:ale_echo_msg_format = '' let g:ale_set_balloons = 0 let g:ale_hover_to_floating_preview = 0 let g:ale_use_global_executables = 0 let g:ale_sign_column_always = 0 let g:ale_disable_lsp = 0 " Set this. Airline will handle the rest. let g:airline#extensions#ale#enabled = 0 echo "ALE disabled" endfunction command! ALEOn call s:ALEEnable() command! ALEOff call s:ALEDisable() function! s:CodeQueryEnable() abort silent! packadd unite.vim silent! packadd vim-codequery echo "CodeQuery setup done" endfunction command! CQOn call s:CodeQueryEnable() " My vimrc end -- Hizenberg