.bashrc -> .bashrc.vahagn

This commit is contained in:
2021-06-25 18:25:28 +01:00
parent 4758e6b2f2
commit d8de2dd2d4
3 changed files with 8 additions and 8 deletions

676
config/.vimrc Executable file
View File

@@ -0,0 +1,676 @@
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Behaviour.
"
" All our scripts and files are here.
if filereadable(expand("~/devel/scripts/vim/vimrc"))
set runtimepath+=~/devel/scripts/vim
endif
" Set 'nocompatible' to ward off unexpected things that your distro might
" have made, as well as sanely reset options when re-sourcing .vimrc
set nocompatible
" Line ending is UNIX.
set fileformat=unix
" Swap files go here.
"set directory="~/tmp,." console version complains all the time.
" Don't backup files.
set nobackup
"set backupdir="~/tmp,." git commit doesn't work.
" Try to set up UTF-8 encoding.
if has('multi_byte')
if &termencoding == ""
let &termencoding = &encoding
endif
set encoding=utf-8
setglobal fileencoding=utf-8
"setglobal bomb
set fileencodings=ucs-bom,utf-8,latin1
endif
" Make tabes to be equal to 4 space chars.
set tabstop=4
" Number of spaces a <Tab> counts. If different from tabstop a combination of
" tabs and spaces will be inserted.
set softtabstop=4
" For indentation shift by 4 chars.
set shiftwidth=4
" When on <Tab> insert shiftwidth space in front of line. When off <Tab> inserts
" blanks according to softtabstop.
set smarttab
" Don't expand tabs.
set expandtab
if has('autocmd')
" Unset expandtab for make files in any case.
autocmd FileType make setlocal noexpandtab
" Set expandtab for python files in any case.
autocmd FileType python setlocal expandtab
endif
" Attempt to determine the type of a file based on its name and possibly its
" contents. Use this to allow intelligent auto-indenting for each filetype,
" and for plugins that are filetype specific.
filetype indent plugin on
" When opening a new line and no filetype-specific indenting is enabled, keep
" the same indent as the line you're currently on. Useful for READMEs, etc.
set autoindent
" Allow backspacing over autoindent, line breaks and start of insert action
set backspace=indent,eol,start
" Stop certain movements from always going to the first character of a line.
" While this behaviour deviates from that of Vi, it does what most users
" coming from other editors would expect.
set nostartofline
" Try to not cross 80 char boundary.
set textwidth=80
" Existing long lines are not broken.
set formatoptions+=l
" Auto-wrap comments using textwidth.
set formatoptions=cq
" Insert comment leader if <Enter> is hit in insert mode or 'o' in Normal mode.
set formatoptions+=ro
"set formatoptions-=o " don't autoformat on 'o' e.g. comment wrapping
"
" C++ oriented.
"
"do not auto insert single line comments
set comments-=://
" Auto-insert multi-line comment continuations
set comments+=f://
" Do not indent after namespace XX{
set cino+=N-s
" Match open-bracket indentation when breaking parameter lists over multiple
" lines.
set cino+=(0
" enable omni completion
set omnifunc=syntaxcomplete#Complete
" If modlines available then turn it on so each file could set its settings.
" ex. # vim: set expandtab:
if exists('+modeline')
set modeline
set modelines=5
endif
" read/write a .viminfo file, don't store more
if exists('+viminfo')
set viminfo='20,\"50
endif
" than 50 lines of registers
let g:netrw_preview = 1 " netrw open window to the right
let g:netrw_browse_split = 3 " open in a tab
set ttyfast "tf "smooths redraw by using more bandwidth
"set sessionoptions-=options
"show shortmessages
"set shortmess+=atIW
" Set timeout for detecting command key sequence
set timeoutlen=400
" Quickly time out on keycodes, but never time out on mappings
set notimeout ttimeout ttimeoutlen=200
" Use <F11> to toggle between 'paste' and 'nopaste'
"set pastetoggle=<F11>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Display
"
" Configure coloring on command line terminals.
if &term=="xterm"
" enable 256 colors
set t_Co=256
" set t_Co=8
set t_Sb=[4%dm
set t_Sf=[3%dm
endif
"
" Configure color theme, fonts and other graphics.
"
if &t_Co > 16
" set color scheme
colorscheme darkblue
"set guioptions-=m
"set guioptions-=T
"set lines=50
"set columns=85
" Set the font.
if has("win32") || has("win64")
"set guifont=FreeMono:h14:cANSI
"set guifont=Courier\ AM:h12
else
"set guifont=Bitstream\ Vera\ Sans\ Mono\ 12
set guifont=Monospace\ 12
endif
endif
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has('gui_running')
syntax on
set hlsearch
endif
" wrap text at window edge without modifying buffer
set nowrap
" Scroll this much chars when scrolled horizontally.
set sidescroll=1
" break at a suitable character (as in breakat)
"set linebreak
" Begin scrolling this lines from window edge.
set scrolloff=0
" Set the command window height to 2 lines, to avoid many cases of having to
" press <Enter> to continue"
set cmdheight=2
" Always display the status line, even if only one window is displayed
set laststatus=2
" Display the cursor position on the last line of the screen or in the status
" line of a window
if exists('+ruler')
set ruler
endif
" Instead of failing a command because of unsaved changes, raise a dialogue
" asking if you wish to save changed files.
if exists('+confirm')
set confirm
endif
" Use visual bell instead of beeping when doing something wrong
if exists('+visualbell')
set visualbell
" And reset the terminal code for the visual bell. If visualbell is set, and
" this line is also included, vim will neither flash nor beep. If visualbell
" is unset, this does nothing.
set t_vb=
endif
" Display line numbers on the left
if exists('+number')
set number
endif
" Turn on spell check.
if exists('+spell') && !&diff
set spell
highlight clear SpellBad
highlight SpellBad cterm=underline ctermfg=red gui=undercurl guisp=Red
endif
" Show 80th column.
if exists('+colorcolumn')
set colorcolumn=+1 " color textwidth+1-th line
endif
" Show command-line completion above the command line.
set wildmenu
" wildmenu ignore list
set wildignore=*.o,*.obj,*.bak,*.exe,*.d,*.dd
" Complete to longest common string
set wildmode=longest:full
" remember more history
set history=1000
" Highlight searched string as typed.
set incsearch
" Enable syntax highlighting
highlight DiffAdd cterm=none ctermfg=Black ctermbg=Green gui=none guifg=Black guibg=Green
highlight DiffDelete cterm=none ctermfg=Black ctermbg=Red gui=none guifg=Black guibg=Red
highlight DiffChange cterm=none ctermfg=Black ctermbg=Yellow gui=none guifg=Black guibg=Yellow
highlight DiffText cterm=none ctermfg=Black ctermbg=Magenta gui=none guifg=Black guibg=Magenta
" Display tabs and trailing spaces visually
set list
set listchars=tab:>-,trail
" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')
" set mouse=n
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" vimdiff
"
" Turn on spell check.
if &diff
"turn off spelling
set nospell
" ignore whitespaces
set diffopt+=iwhite
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" TODO: review
"
" One such option is the 'hidden' option, which allows you to re-use the same
" window and switch from an unsaved buffer without saving it first. Also allows
" you to keep an undo history for multiple files when re-using the same window
" in this way. Note that using persistent undo also lets you undo in multiple
" files even in the same window, but is less efficient and is actually designed
" for keeping undo history after closing Vim entirely. Vim will complain if you
" try to quit without saving, and swap files will keep you safe if your computer
" crashes.
if exists('&hidden')
set hidden
endif
" Set fold method if supported
if has('folding')
set nofoldenable
set foldmethod=indent "fold based on indent
set foldnestmax=3
set foldminlines=4
set foldlevel=1
set foldcolumn=2 " foldcolumn is width 2
if has("autocmd")
autocmd FileType vim setlocal foldmethod=marker
autocmd FileType c setlocal foldmethod=syntax
autocmd FileType h setlocal foldmethod=syntax
autocmd FileType cpp setlocal foldmethod=syntax
endif
endif
" Only do this part when compiled with support for autocommands.
if has('autocmd')
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
filetype plugin indent on
" start with all folds open
au BufRead,BufNewFile,BufWinEnter * normal zR
" highlight lone colon characters
highlight WarnChar ctermbg=yellow ctermfg=red guibg=#FFCC33 guifg=#FF0000
"apply highlight when opening a file, changing text (N or I), or opening a split
au BufRead,InsertCharPre *.cpp 2mat WarnChar /\w\+;\?:;\?\w\+/
" Put these in an autocmd group, so that we can delete them easily.
augroup vimrcEx
au!
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
" Also don't do it when the mark is in the first line, that is the default
" position when opening a file.
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
augroup END
endif " has("autocmd")
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Commands
"
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Key Mappings
"
"
"
if has('gui_running')
":tab drop {file}
" Hide show menu and toolbar.
map <silent> <C-F2> :if &guioptions =~# 'm' <Bar>
\set guioptions-=m <Bar>
\set guioptions-=T <Bar>
\set showtabline=0 <Bar>
\else <Bar>
\set guioptions+=m <Bar>
\set guioptions+=T <Bar>
\set showtabline=1 <Bar>
\endif <CR>
endif
" open ctag definition in new tab
map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
" Create a new tab.
"map <silent> <C-F3> :tabnew<CR>
"
" Grep the word under cursor.
"
" Grep options affect GNU grep. The intend is that greps not supporting the
" options will continue working without options.
"
let $GREP_OPTIONS.=' --exclude-dir=.git --exclude-dir=.svn --exclude-dir=.hg'
let $GREP_OPTIONS.=' --exclude=tags --exclude=*.o --exclude=*.log'
let $GREP_OPTIONS.=' --exclude=*.swp'
let $GREP_OPTIONS.=' --exclude-dir=llcalc* --exclude-dir=00*'
"let $GREP_OPTIONS.=' --include *.sh'
"let $GREP_OPTIONS.=' --include *.php'
"let $GREP_OPTIONS.=' --include *.h --include *.cpp --include *.c'
"let $GREP_OPTIONS.=' --include *.py'
"let $GREP_OPTIONS.=' --include *.java'
"let $GREP_OPTIONS.=' --include *.f'
"let $GREP_OPTIONS.=' --include *.xsd --include *.xml'
"let $GREP_OPTIONS.=' --include Makefile'
map af :execute "grep! ".expand("<cword>")." -r ." <Bar> cw<CR>
"
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
"
inoremap <C-U> <C-G>u<C-U>
"
" Move through wrapped lines instead of buffer lines.
"
noremap <Up> gk
noremap <Down> gj
"imap <Up> <C-O>gk
"imap <Down> <C-O>gj
"
" Working with tabs especially if using console version.
"
" nnoremap th :tabfirst<CR>
" nnoremap tj :tabnext<CR>
" nnoremap tk :tabprev<CR>
" nnoremap tl :tablast<CR>
" nnoremap tm :tabm<Space>
" nnoremap td :tabclose<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Plugins
"
"
" Detect Vundle
"
let s:vundle_path = '~/.vim/bundle/Vundle.vim'
if filereadable(expand('C:/devel/scripts/vim/bundle/Vundle.vim/README.md'))
let s:vundle_path = 'C:/devel/scripts/vim/bundle/Vundle.vim'
endif
"
" Vundle stuff here.
"
if filereadable(expand(s:vundle_path.'/README.md'))
filetype off
let &rtp=&rtp.','.s:vundle_path
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
"
" Adds nice status and tabline.
"
Plugin 'vim-airline/vim-airline'
"Plugin 'vim-airline/vim-airline-themes'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline_powerline_fonts = 1
"
Plugin 'scrooloose/nerdtree'
let g:NERDTreeQuitOnOpen = 1
let g:NERDTreeDirArrows = 1
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'
let g:NERDTreeIgnore = ['\.o$', '\.so$', '\.tsk$']
map at :NERDTreeToggle<CR>
"map am :NERDTreeFind<CR>
"
" Commented out in favour of NERDTree
"
"Plugin 'eiginn/netrw'
"let g:netrw_altv = 1
"let g:netrw_fastbrowse = 2
"let g:netrw_keepdir = 0
"let g:netrw_liststyle = 3
"let g:netrw_retmap = 1
"let g:netrw_silent = 1
"let g:netrw_special_syntax= 1
"map <C-n> :Explore<CR>
"map <C-m> :Explore %:p:h<CR>
"
" Manipulation with buffers and tabs.
"
Plugin 'vim-scripts/Buffergator'
let g:buffergator_autodismiss_on_select = 0
let g:buffergator_autoupdate = 1
let g:buffergator_suppress_keymaps = 1
let g:buffergator_viewport_split_policy = "L"
map ab :BuffergatorToggle<CR>
"map at :BuffergatorTabsToggle<CR>
"
" :A switches to the header file (or vise versa)
" :AS splits and switches
" :AV vertical splits and switches
" :AT new tab and switches
" :AN cycles through matches
" :IH switches to file under cursor
" :IHS splits and switches
" :IHV vertical splits and switches
" :IHT new tab and switches
" :IHN cycles through matches
" <Leader>ih switches to file under cursor
" <Leader>is switches to the alternate file of file under
" cursor (e.g. on <foo.h> switches to foo.cpp)
" <Leader>ihn cycles through matches
"
Plugin 'vim-scripts/a.vim'
let g:alternateExtensions_h = "cpp,c"
let g:alternateExtensions_cpp = "h"
let g:alternateExtensions_c = "h"
map ah :A<CR>
"
" Tmux integration.
"
Plugin 'benmills/vimux'
"
" Extends modeline to variables.
" Needed by CF5 compile to read options right from file.
"
Plugin 'vim-scripts/let-modeline.vim'
"
" CF5 compile.
" Compiling cpp files without make file.
"
Plugin 'vishap/cf5-compile'
map <silent> ac :call CF5CompileOnly()<CR>
map <silent> ar :call CF5CompileAndRun()<CR>
"
" Provide templates
"
Plugin 'aperezdc/vim-template'
"let g:templates_no_autocmd = 1
let g:templates_no_builtin_templates = 1
"
" Local vimrc
"
Plugin 'embear/vim-localvimrc'
let g:localvimrc_name = [ ".vimrc.local" ]
let g:localvimrc_ask = 0
"
" Comment code.
" gc - visual mode - comment selection.
"
Plugin 'tpope/vim-commentary'
nmap al <Plug>CommentaryLine
vmap al <Plug>Commentary
"
" Git wrapper.
"
Plugin 'tpope/vim-fugitive'
nmap git :Git
nmap gst :Gstatus
"
" Shows git diff.
" [c - jump prev diff
" ]c - jump nex diff
" <Leader>hs - stage the hunk
" <Leader>hr - revert the hunk
" :GitGutterNextHunk
" :GitGutterPrevHunk
" :GitGutterStageHunk
" :GitGutterRevertHunk
" :GitGutterToggle
" :GitGutterLineHighlightsToggle
"
Plugin 'airblade/vim-gitgutter'
let g:gitgutter_map_keys = 0
let g:gitgutter_realtime = 0
let g:gitgutter_eager = 0
let g:gitgutter_async = 1
"
" Check syntaxis on fly.
"
"Plugin 'scrooloose/syntastic'
"let g:syntastic_cpp_compiler_options = ' -std=c++1y'
"let g:syntastic_mode_map = {
" \ "mode": "active",
" \ "active_filetypes": ["ruby", "php"],
" \ "passive_filetypes": ["c", "cpp"] }
"
" Nice colorschemes.
" Actual colorscheme is set outside as vundle resets it.
"
if &t_Co >= 256 || has('gui_running')
Plugin 'nanotech/jellybeans.vim'
let g:jellybeans_use_lowcolor_black = 0
let g:jellybeans_use_gui_italics = 0
"colorscheme jellybeans
endif
if &t_Co >= 256 || has('gui_running')
Plugin 'altercation/vim-colors-solarized.git'
let g:solarized_termcolors=256
"set backgroung=dark
"set backgroung=light
"colorscheme solarized
endif
if &t_Co >= 256 || has('gui_running')
Plugin 'morhetz/gruvbox.git'
"set backgroung=dark
"set backgroung=light
"colorscheme solarized
endif
"
" :set syntax=cpp.doxygen to highlight doxygen comments.
"
Plugin 'vim-scripts/DoxyGen-Syntax'
"
" In vim, place the cursor on the line and
" :DoxLic - generates license comment.
" :DoxAuthor - skeleton and leave the cursor just after @author tag.
" :Dox - generates function/class comment.
" :DoxUndoc(DEBUG) - if you want to ignore all code fragment ifdefed with
" DEBUG.
" :DoxBlock -
"
Plugin 'vim-scripts/DoxygenToolkit.vim'
"
" Color table and picker.
" :XtermColorTable
" press: # to yank, t to toggle, f to set text color
"
"Plugin 'xterm-color-table.vim'
" Promising GDB manager.
"
Plugin 'vim-scripts/gdbmgr'
"
call vundle#end()
filetype plugin indent on
filetype plugin on
endif
"
" Vundle resets this if set inside vundle section.
"
if &t_Co >= 256 || has('gui_running')
colorscheme jellybeans
hi clear SpellBad
hi SpellBad cterm=underline, ctermfg=red
endif
if exists("dddd")
"Plugin 'Rip-Rip/clang_complete'
"Plugin 'flazz/vim-colorschemes'
"Plugin 'Valloric/YouCompleteMe'
"Plugin 'rhysd/vim-clang-format'
Plugin 'vim-scripts/Mark'
Plugin 'danro/rename.vim'
Plugin 'kana/vim-operator-user'
Plugin 'kien/ctrlp.vim'
let g:ctrlp_root_markers = ['.ctrlp']
let g:ctrlp_custom_ignore = {
\ 'file': '\v\.(o|d|dd)$',
\ }
Plugin 'majutsushi/tagbar'
map <C-t> :TagbarToggle<CR>
let g:tagbar_autoclose = 1
let g:tagbar_autofocus = 1
let g:tagbar_autoshowtag = 1
let g:tagbar_compact = 1
let g:tagbar_indent = 1
let g:tagbar_sort = 1
let g:tagbar_width = 60
let g:tagbar_ctags_bin = "/opt/swt/bin/ctags"
Plugin 'mattn/emmet-vim'
Plugin 'tmhedberg/matchit'
Plugin 'tpope/vim-dispatch'
Plugin 'tpope/vim-unimpaired'
Plugin 'vim-scripts/Align'
Plugin 'vim-scripts/taglist.vim'
Plugin 'vim-scripts/xml.vim'
Plugin 'junegunn/vim-easy-align'
Plugin 'ntpeters/vim-better-whitespace'
let g:strip_whitespace_on_save = 1
"Plugin 'vim-scripts/TagHighlight'
"Plugin 'gcmt/taboo.vim'
"let g:taboo_tab_format = "[%m:%N:%W] %f"
" - - - - - - - - - - - - - -
" powerline
" - - - - - - - - - - - - - -
let g:Powerline_symbols = "unicode"
" Ack
Plugin 'mileszs/ack.vim'
let g:ack_default_options = " --ignore-file=is:tags -s -H --nocolor --nogroup --column"
let g:ack_highlight = 1
endif