-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvimrc
150 lines (120 loc) · 3.76 KB
/
vimrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
let mapleader = " "
set backspace=2 " Backspace deletes like most programs in insert mode
set nobackup " no backup files
set nowritebackup
set noswapfile
" auto writing
set autowrite " write when leaving buffer
set autowriteall " write when leaving buffer (always)
autocmd FocusLost * :wa " write on loss of focus
autocmd BufLeave,FocusLost * silent! wall
" set tab width
set tabstop=2
set shiftwidth=2
set softtabstop=2
set smarttab
set expandtab
" Numbers
set number
set numberwidth=5
" http://stackoverflow.com/questions/16902317/vim-slow-with-ruby-syntax-highlighting
set re=1
" combined to ignore case when searching for lower case words: 'inner' - >
" matches 'inner', 'INNER', and 'Inner'
" case sensitive when upper case letter are used: 'Inner' ->
" matches 'Inner' only
set ignorecase
set smartcase
set nofixeol
call plug#begin('~/.vim/bundle')
Plug 'tpope/vim-vividchalk'
Plug 'ervandew/supertab'
Plug 'tpope/vim-fugitive'
Plug 'junegunn/gv.vim'
Plug 'tpope/vim-rails'
Plug 'scrooloose/nerdcommenter'
Plug 'tpope/vim-surround'
Plug 'kchmck/vim-coffee-script'
Plug 'editorconfig/editorconfig-vim'
Plug 'scrooloose/nerdtree'
Plug 'mwise/vim-rspec-focus'
Plug 'tpope/vim-unimpaired'
Plug 'w0rp/ale'
Plug 'junegunn/fzf'
Plug 'junegunn/fzf.vim'
Plug 'tpope/vim-dispatch'
Plug 'thoughtbot/vim-rspec'
Plug 'tpope/vim-endwise'
Plug 'tpope/vim-cucumber'
Plug 'tpope/vim-bundler'
" Snipets
Plug 'MarcWeber/vim-addon-mw-utils'
Plug 'tomtom/tlib_vim'
Plug 'honza/vim-snippets'
Plug 'garbas/vim-snipmate'
Plug 'tpope/vim-repeat'
call plug#end()
colorscheme vividchalk
set hlsearch
hi Search cterm=NONE ctermfg=black ctermbg=yellow
" Insert a debugger
let @b = 'Obyebug'
" File explorer
let g:netrw_liststyle=3
map <leader>k :Explore<cr>
" NERDTree
map <leader>[ :NERDTreeToggle<CR>
map <leader>{ :NERDTreeFind<CR>
" Set paste, paste from clipboard, unset paste
"map <Leader>p :set paste<CR>o<esc>"*]p:set nopaste<cr>
set clipboard=unnamedplus
nmap <silent> <leader>p :set paste<CR>"*p:set nopaste<CR>
" Clear highlighting
map <leader>n :noh<CR>
" copy
map <Leader>y :echo system('echo -n '.shellescape(@").' \| npaste')<CR>
" Strip whitespace on save
fun! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l, c)
endfun
autocmd FileType c,cpp,java,php,ruby,python autocmd BufWritePre <buffer> :call <SID>StripTrailingWhitespaces()
" vim-rspec-focus
:nnoremap <leader>ff :ToggleFocusTag<CR>
:nnoremap <leader>fa :AddFocusTag<CR>
:nnoremap <leader>fr :RemoveFocusTag<CR>
:nnoremap <leader>fd :ToggleDescribeFocusTag<CR>
:nnoremap <leader>fc :ToggleContextFocusTag<CR>
:nnoremap <leader>fi :ToggleItFocusTag<CR>
:nnoremap <leader>rf :RemoveAllFocusTags<CR>
" copy current file name (relative/absolute) to system clipboard
" relative path (src/foo.txt)
nnoremap <leader>cf :let @+=expand("%")<CR>
" absolute path (/something/src/foo.txt)
nnoremap <leader>cF :let @+=expand("%:p")<CR>
" filename (foo.txt)
nnoremap <leader>ct :let @+=expand("%:t")<CR>
let g:ale_linters = { 'ruby': ['rubocop'], 'eruby': ['ruumba'], 'javascript': ['eslint'] }
" Disable linting highlighting by default
"let g:ale_set_highlights = 1
" Disable linting every time a file is opened
"let g:ale_lint_on_enter = 0
"let g:ale_lint_on_text_changed = "normal"
"let g:ale_lint_on_save = 1
" let g:ale_lint_on_insert_leave
" ALE keybindings
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
" FZF key mappings
nnoremap <C-b> :Buffers<CR>
nnoremap <C-g>g :Ag<CR>
nnoremap <C-f>l :BLines<CR>
nnoremap <C-p> :GFiles<CR>
nnoremap <silent> <Leader>ag :Ag <C-R><C-W><CR>
map <Leader>t :call RunCurrentSpecFile()<CR>
map <Leader>s :call RunNearestSpec()<CR>
map <Leader>l :call RunLastSpec()<CR>
set visualbell
let g:snipMate = { 'snippet_version': 1 }