-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.vim
152 lines (120 loc) · 3.83 KB
/
init.vim
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
151
152
syntax on
set number
set showbreak=+++
set textwidth=100
set showmatch
set visualbell
set nowrap
set hlsearch
set smartcase
set ignorecase
set incsearch
set autoindent
set expandtab
set shiftwidth=2
set softtabstop=2
" Tabs appear as 2 spaces
set tabstop=2
set ruler
set undolevels=1000
set backspace=indent,eol,start
set relativenumber
" Ensure overwrite copy
set backupcopy=yes
" for NERD Commenter
filetype plugin on
" Other javascript stuff? filetype plugin indent on
" Lol
:imap jk <Esc>
":imap kj <Esc>
" Auto tab
inoremap {<CR> {<CR>}<Esc>O<BS><Tab>
" Plug
call plug#begin('~/.config/nvim/plugged')
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'tpope/vim-surround'
Plug 'pangloss/vim-javascript'
Plug 'raimondi/delimitmate'
Plug 'airblade/vim-gitgutter'
Plug 'othree/yajs.vim'
Plug 'vim-airline/vim-airline'
Plug 'rust-lang/rust.vim'
Plug 'mxw/vim-jsx'
Plug 'tpope/tpope-vim-abolish'
Plug 'leafgarland/typescript-vim'
Plug 'maksimr/vim-jsbeautify'
Plug 'mhartington/nvim-typescript'
Plug 'alvan/vim-closetag'
Plug 'mattn/emmet-vim'
Plug 'junegunn/fzf'
Plug 'junegunn/fzf.vim'
Plug 'fatih/vim-go'
Plug 'zchee/deoplete-go', { 'do': 'make'}
Plug 'ElmCast/elm-vim'
Plug 'w0rp/ale'
" Haskell
Plug 'neovimhaskell/haskell-vim'
" Colorz
Plug 'morhetz/gruvbox'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'carlitux/deoplete-ternjs', { 'do': 'npm install -g tern' }
Plug 'sebastianmarkow/deoplete-rust'
" Start it up
let g:deoplete#enable_at_startup = 1
" Allow tab autocomplete
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<Tab>"
" Disable the preview window on tab complete
set completeopt-=preview
"" rust deoplete rust
let g:deoplete#sources#rust#racer_binary='/home/holden/.cargo/bin/racer'
let g:deoplete#sources#rust#rust_source_path='/home/holden/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src'
let g:deoplete#sources#rust#disable_keymap=1
" Yuck
let g:rust_recommended_style = 0
" JS/Tern deoplete things
let g:tern_request_timeout = 1
let g:tern_show_signature_in_pum = '0' " This do disable full signature type on autocomplete
"Add extra filetypes
let g:tern#filetypes = ['js', 'jsx', 'javascript.jsx']
" Enable JSX in JS files
let g:jsx_ext_required = 0
" Close tag stuff
let g:closetag_filenames = '*.html,*.xhtml,*.phtml'
" Dont close everything
let delimitMate_matchpairs = "(:),[:],{:}"
" Fzf options
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-i': 'vsplit' }
" Fzf ctrl p replacement
nnoremap <silent> <C-p> :FZF -m<cr>
let g:deoplete#sources#go#gocode_binary = '/home/holden/go/bin/gocode'
let g:go_fmt_command = "goimports"
" Haskell options
let g:haskell_enable_quantification = 1 " to enable highlighting of `forall`
let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec`
let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc`
let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern`
let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles
let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static`
let g:haskell_backpack = 1 " to enable highlighting of backpack keywords
let g:ale_fixers = {
\ 'javascript': ['eslint'],
\}
let g:ale_linters = {
\ 'javascript': ['eslint']
\}
autocmd FileType javascript noremap <buffer> <c-f> :call RangeJsBeautify()<cr>
autocmd FileType json noremap <buffer> <c-f> :call RangeJsonBeautify()<cr>
autocmd FileType jsx noremap <buffer> <c-f> :call RangeJsxBeautify()<cr>
autocmd FileType html noremap <buffer> <c-f> :call RangeHtmlBeautify()<cr>
autocmd FileType css noremap <buffer> <c-f> :call RangeCSSBeautify()<cr>
call plug#end()
" Gruvbox
" This HAS to be after plugged :)
set t_Co=256
let base16colorspace=256
set background=dark
colorscheme gruvbox