+++ /dev/null
-" File: gtags-cscope.vim
-" Author: Tama Communications Corporation
-" Version: 0.4.1
-" Last Modified: September 10, 2014
-"
-" Copyright and license
-" ---------------------
-" Copyright (c) 2010, 2011 Tama Communications Corporation
-"
-" This file is part of GNU GLOBAL.
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see <http://www.gnu.org/licenses/>.
-"
-" Overview
-" --------
-" The gtags-cscope.vim plugin script integrates the GNU GLOBAL source code tagging system
-" with Vim using cscope interface.
-"
-" Installation
-" ------------
-" Drop the file in your plugin directory or source it from your vimrc.
-" To use this script, you need the GNU GLOBAL-5.8 or later installed
-" in your machine.
-"
-" Usage
-" -----
-" First of all, you must execute gtags(1) at the root of source directory
-" to make tag files. Assuming that your source directory is '/var/src',
-" it is neccessary to execute the following commands.
-"
-" [Load vim]
-" $ cd /var/src
-" $ gtags
-" $ vim
-" [Load gtags-cscope]
-" :GtagsCscope <ENTER> (in vim command line)
-"
-" Basic command
-" -------------
-" Then you can use cs commands except for the 'd'(2) command.
-" Profitable commands are assigned to keys like follows:
-"
-" explanation command
-" ----------------------------------------------------------
-" Find symbol :cs find 0 or s
-" Find definition :cs find 1 or g
-" Find functions called by this function (not implemented)
-" Find reference :cs find 3 or c
-" Find text string :cs find 4 or t
-" Find egrep pattern :cs find 6 or e
-" Find path :cs find 7 or f
-" Find include file :cs find 8 or i
-"
-" You can move tag list using:
-" Go to the next tag :tn
-" Go to the previous tag :tp
-" Pop tag stack :pop
-"
-" About the other tag command, you can see the help like this:
-"
-" :h tagsrch
-"
-" Enhancing command
-" -----------------
-" You can use the context jump function. To use this function, put the cursor
-" on a word and type <C-\><C-\><C-]>.
-" If you can use mouse then please double click on the left button.
-" To pop tag, please type 'g' and click on the right button.
-"
-" Configure
-" ---------
-" You can use the following variables in $HOME/.vimrc.
-"
-" To use the default key/mouse mapping:
-" let GtagsCscope_Auto_Map = 1
-" To ignore letter case when searching:
-" let GtagsCscope_Ignore_Case = 1
-" To use absolute path name:
-" let GtagsCscope_Absolute_Path = 1
-" To deterring interruption:
-" let GtagsCscope_Keep_Alive = 1
-" If you hope auto loading:
-" let GtagsCscope_Auto_Load = 1
-" To use 'vim -t ', ':tag' and '<C-]>'
-" set cscopetag
-"
-if exists("loaded_gtags_cscope")
- finish
-endif
-if !has("cscope")
- echohl WarningMsg |
- \ echomsg 'Gtags-cscope: ' . 'This vim does not include cscope support.' |
- \ echohl None
- finish
-endif
-"
-" global command name
-"
-let s:global_command = $GTAGSGLOBAL
-if s:global_command == ''
- let s:global_command = "global"
-endif
-if !exists("GtagsCscope_Auto_Load")
- let GtagsCscope_Auto_Load = 0
-endif
-if !exists("GtagsCscope_Auto_Map")
- let GtagsCscope_Auto_Map = 0
-endif
-if !exists("GtagsCscope_Use_Old_Key_Map")
- let GtagsCscope_Use_Old_Key_Map = 0
-endif
-if !exists("GtagsCscope_Quiet")
- let GtagsCscope_Quiet = 0
-endif
-if !exists("GtagsCscope_Ignore_Case")
- let GtagsCscope_Ignore_Case = 0
-endif
-if !exists("GtagsCscope_Absolute_Path")
- let GtagsCscope_Absolute_Path = 0
-endif
-if !exists("GtagsCscope_Keep_Alive")
- let GtagsCscope_Keep_Alive = 0
-endif
-
-"
-" Display error message.
-"
-function! s:Error(msg)
- if (g:GtagsCscope_Quiet == 0)
- echohl WarningMsg |
- \ echomsg 'Gtags-cscope: ' . a:msg |
- \ echohl None
- endif
-endfunction
-
-function! s:GtagsCscope_GtagsRoot()
- let cmd = s:global_command . " -pq"
- let cmd_output = system(cmd)
- if v:shell_error != 0
- if v:shell_error == 3
- call s:Error('GTAGS not found.')
- else
- call s:Error('global command failed. command line: ' . cmd)
- endif
- return ''
- endif
- return strpart(cmd_output, 0, strlen(cmd_output) - 1)
-endfunction
-
-function! s:GtagsCscope()
- "
- " Get gtagsroot directory.
- "
- let gtagsroot = s:GtagsCscope_GtagsRoot()
- if gtagsroot == ''
- return
- endif
- "
- " Load gtags-cscope.
- "
- set csprg=gtags-cscope
- let s:command = "cs add " . gtagsroot . "/GTAGS"
- let s:option = ''
- if g:GtagsCscope_Ignore_Case == 1
- let s:option = s:option . 'C'
- endif
- if g:GtagsCscope_Absolute_Path == 1
- let s:option = s:option . 'a'
- endif
- if g:GtagsCscope_Keep_Alive == 1
- let s:option = s:option . 'i'
- endif
- if s:option != ''
- let s:command = s:command . ' . -' . s:option
- endif
- set nocscopeverbose
- exe s:command
- set cscopeverbose
- "
- " Key mapping
- "
- if g:GtagsCscope_Auto_Map == 1
- if g:GtagsCscope_Use_Old_Key_Map == 1
- " normal command
- :nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR>
- :nmap <C-\>t :cs find g <C-R>=expand("<cword>")<CR>
- :nmap <C-\>r :cs find c <C-R>=expand("<cword>")<CR>
- :nmap <C-\>g :cs find e <C-R>=expand("<cword>")<CR>
- :nmap <C-\>P :cs find f
- " Using 'CTRL-spacebar', the result is displayed in new horizontal window.
- :nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR>
- :nmap <C-@>t :scs find g <C-R>=expand("<cword>")<CR>
- :nmap <C-@>r :scs find c <C-R>=expand("<cword>")<CR>
- :nmap <C-@>g :scs find e <C-R>=expand("<cword>")<CR>
- :nmap <C-@>P :scs find f
- " Hitting CTRL-space *twice*, the result is displayed in new vertical window.
- :nmap <C-@><C-@>s :vert scs find s <C-R>=expand("<cword>")<CR>
- :nmap <C-@><C-@>t :vert scs find g <C-R>=expand("<cword>")<CR>
- :nmap <C-@><C-@>r :vert scs find c <C-R>=expand("<cword>")<CR>
- :nmap <C-@><C-@>g :vert scs find e <C-R>=expand("<cword>")<CR>
- :nmap <C-@><C-@>P :vert scs find f
- else
- "
- " The following key mappings are derived from 'cscope_maps.vim'.
- " (The 'd' command is not implemented in gtags-cscope.)
- "
- " normal command
- :nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
- :nmap <C-\>i :cs find i <C-R>=expand("<cfile>")<CR><CR>
- ":nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
- " Using 'CTRL-spacebar', the result is displayed in new horizontal window.
- :nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@>c :scs find c <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@>t :scs find t <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@>e :scs find e <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
- :nmap <C-@>i :scs find i <C-R>=expand("<cfile>")<CR><CR>
- ":nmap <C-@>d :scs find d <C-R>=expand("<cword>")<CR><CR>
- " Hitting CTRL-space *twice*, the result is displayed in new vertical window.
- :nmap <C-@><C-@>s :vert scs find s <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@><C-@>g :vert scs find g <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@><C-@>c :vert scs find c <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@><C-@>t :vert scs find t <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@><C-@>e :vert scs find e <C-R>=expand("<cword>")<CR><CR>
- :nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
- :nmap <C-@><C-@>i :vert scs find i <C-R>=expand("<cfile>")<CR><CR>
- ":nmap <C-@><C-@>d :vert scs find d <C-R>=expand("<cword>")<CR><CR>
- endif
- " tag command
- :nmap <C-\><C-n> :tn<CR>
- :nmap <C-\><C-p> :tp<CR>
- :nmap <C-n> :cn<CR>
- :nmap <C-p> :cp<CR>
- " Context search. See the --from-here option of global(1).
- :nmap <C-\><C-\><C-]> :cs find d <C-R>=expand("<cword>")<CR>:<C-R>=line('.')<CR>:%<CR>
- :nmap <2-LeftMouse> :cs find d <C-R>=expand("<cword>")<CR>:<C-R>=line('.')<CR>:%<CR>
- :nmap g<LeftMouse> :cs find d <C-R>=expand("<cword>")<CR>:<C-R>=line('.')<CR>:%<CR>
- :nmap <C-LeftMouse> :cs find d <C-R>=expand("<cword>")<CR>:<C-R>=line('.')<CR>:%<CR>
- " The following mappings are unnecessary, because you can use the default mapping.
- ":nmap g<RightMouse> <C-t>
- ":nmap <C-RightMouse> <C-t>
- " Short cut key
- :nmap <C-\><SPACE> :cs find<SPACE>
- :nmap <C-@><SPACE> :scs find<SPACE>
- :nmap <C-@><C-@><SPACE> :vert scs find<SPACE>
- :nmap <F2> :copen<CR>
- :nmap <F3> :cs find d <C-R>=expand("<cword>")<CR>:<C-R>=line('.')<CR>:%<CR>
- :nmap <F4> :cclose<CR>
- endif
-endfunction
-
-if g:GtagsCscope_Auto_Load == 1
- call s:GtagsCscope()
-endif
-command! -nargs=0 GtagsCscope call s:GtagsCscope()
-let loaded_gtags_cscope = 1
+++ /dev/null
-" Use :help 'option' to see the documentation for the given option.
-set nocompatible
-filetype plugin indent on
-syntax on
-
-" indentation
-set expandtab
-set shiftwidth=2
-set softtabstop=2
-set autoindent
-set copyindent
-set smarttab
-set linebreak
-set textwidth=0
-set breakindent
-set breakindent showbreak=\ +
-set shiftround
-set formatoptions+=j
-
-" searching
-set incsearch
-set hlsearch
-set ignorecase
-set smartcase
-set showmatch
-set complete-=i
-set virtualedit=block
-if has('unnamedplus')
- set clipboard=unnamed,unnamedplus
-endif
-
-" display
-set scrolloff=1
-set scrolljump=5
-set sidescrolloff=5
-set display+=lastline
-set lazyredraw
-set number
-set relativenumber
-set title
-set titlestring=%F
-set matchtime=2
-
-" folding
-set foldmethod=syntax
-set foldlevelstart=10
-set foldnestmax=10
-set foldopen+=search
-set foldclose=all
-
-" keyboard
-set backspace=indent,eol,start
-set ttimeoutlen=10
-set winaltkeys=no
-set noerrorbells
-set novisualbell
-set t_vb=
-
-" command/status line
-set showmode
-set showcmd
-set ruler
-set laststatus=2
-set cmdheight=2
-set shortmess=aoOTI
-set wildmenu
-set wildmode=longest:full,full
-set wildignore+=tags,*.pyc,*.jpg,*.png,*.gif,*.zip
-set wildoptions=tagfile
-
-" buffers
-set hidden
-set autoread
-"set autowrite
-"set autowriteall
-
-" temporary files
-silent !mkdir -p ~/.vim/undo
-set nobackup
-set noswapfile
-set undofile
-set undodir=~/.vim/undo
-set viminfo=
-set history=1000
-set tags=.git/tags
-set sessionoptions-=options
-let g:session_directory = "~/.vim/session"
-let g:session_autoload = "no"
-let g:session_autosave = "no"
-let g:session_command_aliases = 1
-
-" system
-set path=.,,**
-set shell=bash
-let g:is_posix = 1
-if has("win32")
- set shell=cmd
- set shellcmdflag=/c
-endif
-scriptencoding utf-8
-set encoding=utf-8
-set fileencoding=utf-8
-set fileencodings=utf-8,latin1,unicode
-set fileformat=unix
-set fileformats=unix,dos,mac
-set fileignorecase
-
-" colors
-set t_Co=256
-set background=dark
-highlight linenr ctermfg=grey
-highlight BadWhitespace ctermfg=red
-match BadWhitespace /\s\+$/
-
-" fonts and chars
-set list
-if has('multi_byte') && &encoding ==# 'utf-8'
- let &listchars = 'tab:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82¢Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82Â\96Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82¸ ,extends:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82¢Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82Â\9dÃ\83Â\83Ã\82Â\82Ã\83Â\82Ã\82¯,precedes:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82¢Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82Â\9dÃ\83Â\83Ã\82Â\82Ã\83Â\82Ã\82®,nbsp:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82Â\82Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82±'
-else
- let &listchars = 'tab:> ,extends:>,precedes:<,nbsp:.'
-endif
-set cursorline
-let &t_ti.="\e[1 q"
-let &t_SI.="\e[5 q"
-let &t_EI.="\e[1 q"
-let &t_te.="\e[0 q"
-
-"Basic Mappings
-let mapleader = "\<space>"
-
-noremap <c-h> <c-w><c-h>
-noremap <c-j> <c-w><c-j>
-noremap <c-k> <c-w><c-k>
-noremap <c-l> <c-w><c-l>
-noremap! <C-a> <Home>
-noremap! <C-e> <End>
-
-" Normal Mode Mappings
-"nnoremap hh <nop>
-"nnoremap jj <nop>
-"nnoremap kk <nop>
-"nnoremap ll <nop>
-nnoremap ; :
-nnoremap : ;
-nnoremap n nzzzv
-nnoremap N Nzzzv
-nnoremap <silent><leader>+ :exe "resize " . (winheight(0) * 3/2)<cr>
-nnoremap <silent><leader>- :exe "resize " . (winheight(0) * 2/3)<cr>
-nnoremap <silent><leader><cr> :noh<cr>
-nnoremap <silent><leader>v :edit $MYVIMRC<cr>
-nnoremap <silent><leader>s :term<cr>
-nnoremap <silent><leader>m :wa<CR>:Make<CR>
-nnoremap <silent><leader>* :grep <cword> \| copen<cr><c-l>
-nnoremap <silent><Leader>t :TagbarToggle<CR>
-"nnoremap <silent><leader>html :-1read ~/.vim/template/html<CR>3jwf>a
-"nnoremap <silent><leader>php :-1read ~/.vim/template/php<CR>2ja
-
-"" Visual Mode Mappings
-vnoremap jk <esc>
-vnoremap <esc> <nop>
-vmap < <gv
-vmap > >gv
-
-" Insert Mode Mappings
-inoremap jk <esc>
-inoremap <esc> <nop>
-inoremap <silent><leader>m <Esc>:wa<CR>:Make<CR>i
-inoremap <C-U> <C-G>u<C-U>
-
-" Command Mode Mappings
-cnoremap <C-p> <Up>
-cnoremap <C-n> <Down>
-
-" Command aliases
-cnoreabbrev w!! w !sudo tee "%"
-
-" Termninal Mappings
-tnoremap <C-h> <C-\><C-n><C-w>h
-tnoremap <C-j> <C-\><C-n><C-w>j
-tnoremap <C-k> <C-\><C-n><C-w>k
-tnoremap <C-l> <C-\><C-n><C-w>l
-
-" Functions
-
-" Netrw
-let g:netrw_liststyle=3
-let g:netrw_banner = 0
-let g:netrw_sort_sequence = '[\/]$,*'
-let g:netrw_list_hide = '\(^\|\s\s\)\zs\.\S\+'
-"let g:netrw_winsize = 25
-"augroup ProjectDrawer
-" autocmd!
-" autocmd VimEnter * :Lexplore
-"augroup END
-
-" grep
-" file:line:coloumn:message
-set grepformat^=%f:%l:%c:%m
-set grepprg=ag\ --vimgrep\ --skip-vcs-ignores\ --path-to-ignore\ ~/.ignore\ --cpp\ --cc
-command! -nargs=1 Ngrep lvimgrep "<args>" $HOME/cloud/Notes/**/*.md
-
-function! s:CmakeInit()
- let &errorformat="%f(%l) : %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%c:%m,%f(%l):%m,%f|%l| %m"
- set makeprg=cmake
-endfunction
-command! -bang -nargs=0 -complete=file CmakeInit call s:CmakeInit(<f-args>)
-
-function! s:Doxygen()
- set errorformat+=%f:%l:\ %m
- set makeprg=doxygen
-endfunction
-command! -bang -nargs=0 -complete=file Doxygen call s:Doxygen(<f-args>)
-
-function! s:Iar()
- set errorformat=%f(%l)\ :\ %m
- set makeprg=vim-iarbuild.cmd
-endfunction
-command! -bang -nargs=0 -complete=file Iar call s:Iar(<f-args>)
-
-" Autocommands
-if has('autocmd')
- augroup expandtabs
- autocmd!
- autocmd FileType c setlocal expandtab softtabstop=2 shiftwidth=2
- autocmd FileType cpp setlocal expandtab softtabstop=2 shiftwidth=2
- autocmd FileType make setlocal noexpandtab tabstop=8 shiftwidth=8
- autocmd FileType python setlocal expandtab softtabstop=4 shiftwidth=4
- \ formatoptions+=croq colorcolumn=79
- \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
- augroup end
-
- augroup filetypes
- autocmd!
- autocmd bufnewfile,bufread *.md,*.txt set filetype=pandoc
- autocmd bufnewfile,bufread *.gradle set filetype=groovy
- autocmd bufnewfile,bufread *.json set filetype=json
- autocmd bufnewfile,bufread *.yml set filetype=yaml
- augroup end
-
- augroup saveall
- autocmd!
- autocmd focuslost * wall
- augroup end
-
- augroup numbers
- autocmd!
- autocmd bufenter,focusgained,insertleave * set relativenumber
- autocmd bufleave,focuslost,insertenter * set norelativenumber
- augroup end
-
- augroup vimrc
- autocmd!
- autocmd bufwritepost ~/.vim/gvimrc silent source %
- autocmd bufwritepost ~/.vim/vimrc silent source %
- autocmd bufwritepost ~/.vim/vimrc.local silent source %
- augroup end
-
- augroup quickfix
-" autocmd QuickFixCmdPost [^l]* nested cwindow
-" autocmd QuickFixCmdPost l* nested lwindow
- autocmd QuickFixCmdPost * call asyncrun#quickfix_toggle(8, 1)
- augroup end
-endif
-
-" Airline
-packadd! vim-airline
-
-let g:airline#extensions#tabline#enabled = 1
-let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
-
-" ALE
-"packadd! ale
-"let g:ale_enabled = 1
-"let g:airline#extensions#ale#enabled = 1
-
-" Tagbar
-packadd! tagbar
-
-" Gtags-Cscope
-packadd! gtags-cscope
-set csprg=gtags-cscope
-set cscopetag
-let GtagsCscope_Auto_Map = 1
-let GtagsCscope_Ignore_Case = 1
-let GtagsCscope_Absolute_Path = 1
-let GtagsCscope_Keep_Alive = 1
-let GtagsCscope_Auto_Load = 1
-let GtagsCscope_Quiet = 1
-
-" termdebug
-"packadd! termdebug
-
-" shellmenu
-"packadd! shellmenu
-
-" Async shell commands
-packadd asyncrun.vim
-let g:asyncrun_open = 8
-let g:asyncrun_status = ""
-let g:airline_section_error = airline#section#create_right(['%{g:asyncrun_status}'])
-let g:asyncrun_auto = "make"
-command! -bang -nargs=* -complete=file Make AsyncRun -program=make @ <args>
-command! -bang -nargs=* -complete=file Grep AsyncRun -program=grep @ <args>
-
-" Error markers
-packadd errormarker.vim
-
-" Meson build system
-packadd mesonic
-
-" snipmate
-packadd tlib_vim
-packadd vim-addon-mw-utils
-packadd vim-snipmate
-packadd vim-snippets
-
-" stock vim
-packadd! matchit
-packadd! vim-syntax-extra
-
-" supertab
-packadd supertab
-
-" Jedi (python)
-"packadd jedi-vim
-"let g:polyglot_disabled = ['python']
-"let python_highlight_all = 1
-
-" completor
-"packadd completor.vim
-"let g:completor_clang_binary = '/usr/bin/clang'
-
-" validator
-packadd validator.vim
-let g:completor_clang_tidy_binary = '/usr/bin/run-clang-tidy'
-let g:validator_c_checkers = ['clang-tidy']
-let g:validator_cpp_checkers = ['clang-tidy']
-
-" Pandoc
-packadd vim-pandoc
-packadd vim-pandoc-syntax
-
-" Pick
-packadd pick.vim
-nnoremap <Leader>p :call PickFile()<CR>
-nnoremap <Leader>b :call PickBuffer()<CR>
-nnoremap <Leader>] :call PickTag()<CR>
-let g:pick_height = 10
-
-" javascript
-packadd vim-javascript
-
-packloadall
-silent! helptags ALL
-
-" local settings
-if filereadable(expand('~/.vim/vimrc.local'))
- source ~/.vim/vimrc.local
-endif
-