main
  1"" Basic Settings {{{{
  2""
  3
  4syntax enable
  5
  6set autoindent
  7set autoread
  8set autowrite
  9set backspace=indent,eol,start
 10set backupdir=~/tmp,/var/tmp,/tmp/
 11set clipboard^=unnamed,unnamedplus
 12set cmdheight=1
 13set completeopt=menu,preview
 14set cursorline
 15set diffopt=vertical
 16set directory=~/tmp,/var/tmp,/tmp/
 17set encoding=utf-8
 18set expandtab
 19set exrc
 20set foldmethod=marker
 21set gdefault
 22set hidden
 23set hlsearch
 24set ignorecase
 25set incsearch
 26set modelines=0
 27set nobackup
 28set nocompatible
 29set noerrorbells
 30set nojoinspaces
 31set noswapfile
 32set nowrap
 33set nowritebackup
 34set number
 35set numberwidth=5
 36set re=1
 37set ruler
 38set scrolloff=3
 39set secure
 40set shell=bash
 41set shiftround
 42set shiftwidth=2
 43set showcmd
 44set showmatch
 45set showmode
 46set showtabline=2
 47set smartcase
 48set softtabstop=2
 49set splitbelow
 50set splitright
 51set t_Co=256
 52set t_vb=
 53set tabstop=2
 54set tags=tags
 55set termencoding=utf-8
 56set title
 57set ttyfast
 58set updatetime=200
 59set visualbell
 60
 61set list
 62set listchars=""
 63set listchars=tab:\ \ 
 64set listchars+=extends:>
 65set listchars+=nbsp:_
 66set listchars+=precedes:<
 67set listchars+=trail:ยท
 68
 69set wildmenu
 70set wildmode=longest,list:longest
 71set wildignore+=*.o,*.out,*.obj,.git,*.rbc,*.rbo,*.class,.svn,*.gem
 72set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.zst
 73set wildignore+=*/vendor/gems/*,*/vendor/cache/*,*/.bundle/*,*/.sass-cache/*
 74set wildignore+=*/tmp/cache/assets/*/sprockets/*,*/tmp/cache/assets/*/sass/*
 75set wildignore+=*.swp,*~,._*
 76set wildignore+=*/tmp/*,*.so,*/coverage/*
 77
 78if executable('ag')
 79  set grepprg=ag\ --vimgrep\ $*
 80endif
 81
 82if has('signcolumn')
 83  set signcolumn=number
 84endif
 85
 86runtime macros/matchit.vim
 87filetype plugin indent on
 88set omnifunc=syntaxcomplete#Complete
 89
 90" }}}}
 91
 92"" General Mappings (Normal, Visual, Operator-pending) {{{{
 93""
 94
 95let mapleader = ","
 96let localleader = "\\"
 97
 98inoremap jk <esc>
 99nnoremap ; :
100nnoremap <C-e> :Buffers<cr>
101nnoremap <C-h> <C-w>h
102nnoremap <C-j> <C-w>j<C-w>_
103nnoremap <C-k> <C-w>k<C-w>_
104nnoremap <C-l> <C-w>l
105nnoremap <C-n> :GFiles<cr>
106nnoremap <C-p> :Files<cr>
107nnoremap <leader><space> :noh<cr>
108nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
109nnoremap <leader>ev :vsplit $MYVIMRC<cr>
110nnoremap <leader>fef :normal! gg=G``<CR>
111nnoremap <leader>gb :Git blame -w -M<cr>
112nnoremap <leader>gs :Gstatus<cr>
113nnoremap <leader>h <C-w>s<C-w>l
114nnoremap <leader>hs :set hlsearch! hlsearch?<CR>
115nnoremap <leader>n :NERDTreeFind<cr>
116nnoremap <leader>p "+p
117nnoremap <leader>sv :source $MYVIMRC<cr>
118nnoremap <leader>v <C-w>v<C-w>l
119nnoremap <localleader>F :Ag<space>
120nnoremap <localleader>f :grep! "\b<C-R><C-W>\b"<CR>:cw<CR>
121nnoremap <localleader>n :NERDTreeClose<cr>
122nnoremap <silent> <leader>cd :lcd %:h<CR>
123nnoremap <space> za
124nnoremap <tab> %
125nnoremap H ^
126nnoremap L $
127noremap <Down> gj
128noremap <Up> gk
129noremap <leader>= <C-w>=
130vnoremap / /\v
131nnoremap <localleader>F :Ag<space>
132vnoremap <space> zf
133vnoremap <tab> %
134
135nmap <localleader>/ <Plug>CommentaryLine
136xmap <localleader>/ <Plug>Commentary
137
138nmap <leader><tab> <plug>(fzf-maps-n)
139omap <leader><tab> <plug>(fzf-maps-o)
140xmap <leader><tab> <plug>(fzf-maps-x)
141
142imap <c-x><c-f> <plug>(fzf-complete-path)
143imap <c-x><c-j> <plug>(fzf-complete-file-ag)
144imap <c-x><c-k> <plug>(fzf-complete-word)
145imap <c-x><c-l> <plug>(fzf-complete-line)
146imap <c-x><c-n> <plug>(fzf-complete-buffer-line)
147
148" }}}}
149
150"" Plugin Configuration {{{{
151""
152
153let g:fzf_tags_command = 'ctags -R'
154let g:go_fmt_autosave = 1
155let g:go_list_type = "quickfix"
156
157" }}}}