11" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2- " General config "
2+ " Plugins "
3+ " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
4+ call plug#begin (' ~/.vim/plugged' )
5+ " Main plugin
6+ Plug ' ctrlpvim/ctrlp.vim'
7+ Plug ' mileszs/ack.vim'
8+ Plug ' neoclide/coc.nvim' , {' branch' : ' release' }
9+ Plug ' dense-analysis/ale'
10+ Plug ' scrooloose/nerdtree'
11+ Plug ' tpope/vim-fugitive'
12+ Plug ' junegunn/gv.vim'
13+ Plug ' tpope/vim-commentary'
14+ Plug ' tpope/vim-surround'
15+ Plug ' tpope/vim-repeat'
16+ Plug ' easymotion/vim-easymotion'
17+ Plug ' kana/vim-textobj-user'
18+ Plug ' christoomey/vim-tmux-navigator'
19+ " For Rails
20+ Plug ' vim-ruby/vim-ruby'
21+ Plug ' tpope/vim-rails'
22+ Plug ' neoclide/coc-solargraph' , {' do' : ' yarn install --frozen-lockfile' }
23+ Plug ' nelstrom/vim-textobj-rubyblock'
24+ Plug ' tpope/vim-endwise'
25+ " For Python
26+ Plug ' neoclide/coc-python' , {' do' : ' yarn install --frozen-lockfile' }
27+ " Frontend
28+ Plug ' pangloss/vim-javascript'
29+ Plug ' ap/vim-css-color'
30+ " UI
31+ Plug ' vim-airline/vim-airline'
32+ Plug ' morhetz/gruvbox'
33+ " other
34+ Plug ' suan/vim-instant-markdown' , {' for' : ' markdown' }
35+ call plug#end ()
36+
37+ " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
38+ " General configs "
339" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
440set encoding = UTF- 8
541set history = 500
642set mouse = a
7- set autoread " Set to auto read when a file is changed from the outside
843set noswapfile
9- set clipboard = unnamed " Use the OS clipboard by default
1044set backspace = indent ,eol ,start
1145set whichwrap += <,> ,h ,l
46+ set autoread " Set to auto read when a file is changed
47+ set clipboard = unnamed " Use the OS clipboard by default
1248set hid " A buffer becomes hidden when it is abandoned
1349filetype indent on " Enable filetype plugins
1450filetype plugin on
@@ -19,53 +55,61 @@ set shiftwidth=2 " Number of auto-indent spaces
1955set smartindent " Enable smart-indent
2056set smarttab " Enable smart-tabs
2157set softtabstop = 2 " Number of spaces per Tab
22- set splitbelow
23- set splitright
58+ set foldmethod = indent " Fold based on indent
59+ set foldnestmax = 5 " Deepest fold is 5 levels
60+ set nofoldenable " No fold when start
61+ set splitbelow " Split below
62+ set splitright " Split right
2463set number relativenumber " turn hybrid line numbers on
2564set cursorline " Highlight cursorline
2665set hlsearch " Highlight all search results
2766set smartcase " Enable smart-case search
2867set ignorecase " Always case-insensitive
2968set incsearch " Searches for strings incrementally
3069set so = 7 " Set 7 lines to the cursor
70+ set foldcolumn = 1 " Add a bit extra margin to the left
3171set laststatus = 2
3272set ruler
3373set wildmenu
34- set foldcolumn = 1 " Add a bit extra margin to the left
35- au FocusGained ,BufEnter * checktime
74+ au FocusGained ,BufEnter * :checktime
75+
76+ " Scheme
77+ colorscheme gruvbox
78+ let g: gruvbox_contrast_dark= ' hard'
79+ set background = dark
3680
3781" Enable matchit for ruby textobject
3882runtime macros/matchit.vim
3983
4084" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
41- " Map key "
85+ " Mappings "
4286" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
4387map s <Nop>
44- " let mapleader=","
45- " let mapleader="s"
4688let mapleader= " "
47- :imap jk <Esc>
89+ imap jk <Esc>
90+
91+ vmap <C-C> "+y
92+ vmap gy "+y
93+ nmap gy "+y
94+ nmap gp "+p
4895
49- " Map key yank and paste clipboard
50- :vmap <C-C> "+y
51- :vmap gy "+y
52- :nmap gy "+y
53- :nmap gp "+p
96+ nmap ]<space> o<esc>
97+ nmap [<space> O<esc>
5498
5599" Turn off search highlight
56100map <silent> <leader><cr> :noh<cr>
57101
58- " Map leader split windows
102+ " Split windows
59103map <leader> sv <C-W> v
60104map <leader> ss <C-W> s
61105
62- " Close the current buffer
106+ " Buffer
63107map <leader> xx :Bclose<cr> :tabclose<cr> gT
64108map <leader> xa :bufdo bd<cr>
65109map <leader> n :bnext<cr>
66110map <leader> p :bprevious<cr>
67111
68- " Useful mappings for managing tabs
112+ " Mappings for managing tabs
69113map <leader> tc :tabnew<cr>
70114map <leader> tx :tabclose<cr>
71115map <leader> tn :tabnext<cr>
@@ -88,54 +132,16 @@ map <leader>tr :NERDTreeRefreshRoot<cr>
88132nnoremap <leader> a :Ack!<Space>
89133map <leader> l :CtrlPBuffer<cr>
90134
91- " General leader map
135+ " others
92136map <leader> = :ALEFix<cr>
93- map <leader> r :!ruby %<cr>
94137map <Leader> <Plug> (easymotion-prefix)
95-
96- " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
97- " Plugin "
98- " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
99- call plug#begin (' ~/.vim/plugged' )
100- " Main plugin
101- Plug ' scrooloose/nerdtree'
102- Plug ' ctrlpvim/ctrlp.vim'
103- Plug ' mileszs/ack.vim'
104- Plug ' christoomey/vim-tmux-navigator'
105- Plug ' tpope/vim-fugitive'
106- Plug ' junegunn/gv.vim'
107- Plug ' tpope/vim-commentary'
108- Plug ' tpope/vim-surround'
109- Plug ' tpope/vim-repeat'
110- Plug ' neoclide/coc.nvim' , {' branch' : ' release' }
111- Plug ' dense-analysis/ale'
112- Plug ' easymotion/vim-easymotion'
113- Plug ' kana/vim-textobj-user'
114- " For Rails
115- Plug ' vim-ruby/vim-ruby'
116- Plug ' tpope/vim-rails'
117- Plug ' neoclide/coc-solargraph' , {' do' : ' yarn install --frozen-lockfile' }
118- Plug ' nelstrom/vim-textobj-rubyblock'
119- Plug ' tpope/vim-endwise'
120- " For Python
121- Plug ' neoclide/coc-python' , {' do' : ' yarn install --frozen-lockfile' }
122- " Frontend
123- Plug ' pangloss/vim-javascript'
124- Plug ' ap/vim-css-color'
125- " UI
126- Plug ' vim-airline/vim-airline'
127- Plug ' morhetz/gruvbox'
128- " other
129- Plug ' suan/vim-instant-markdown' , {' for' : ' markdown' }
130- " Plug 'neoclide/coc-prettier', {'do': 'yarn install --frozen-lockfile'}
131- " Plug 'neoclide/coc-eslint', {'do': 'yarn install --frozen-lockfile'}
132- call plug#end ()
138+ autocmd Filetype ruby map <leader> r :!ruby %<cr>
139+ autocmd Filetype python map <leader> r :!python3 %<cr>
133140
134141" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
135142" Plugin config "
136143" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
137144" Ack
138- " let g:ack_qhandler = "copen"
139145if executable (' ag' )
140146 let g: ackprg = ' ag --vimgrep'
141147endif
@@ -145,20 +151,15 @@ let g:ack_mappings = {
145151 \ ' gv' : ' <C-W><CR><C-W>L<C-W>p<C-W>J' ,
146152 \ ' q' : ' <C-W>p' }
147153
148- " Scheme
149- colorscheme gruvbox
150- let g: gruvbox_contrast_dark= ' hard'
151- set background = dark
152-
153154" Airline config
155+ let g: airline_theme= ' gruvbox'
156+ let g: airline_powerline_fonts = 1
154157let g: airline #extensions#tabline #enabled = 1
155158let g: airline #extensions#tabline #show_tabs = 0
156- let g: airline #extensions#ale#enabled = 1
159+ let g: airline #extensions#tabline #buffer_idx_mode = 1
157160let g: airline #extensions#tabline #left_sep = ' '
158161let g: airline #extensions#tabline #left_alt_sep = ' |'
159- let g: airline_theme= ' gruvbox'
160- let g: airline_powerline_fonts = 1
161- let g: airline #extensions#tabline #buffer_idx_mode = 1
162+ let g: airline #extensions#ale#enabled = 1
162163nmap <leader> 1 <Plug> AirlineSelectTab1
163164nmap <leader> 2 <Plug> AirlineSelectTab2
164165nmap <leader> 3 <Plug> AirlineSelectTab3
@@ -171,17 +172,13 @@ nmap <leader>9 <Plug>AirlineSelectTab9
171172
172173" NERDTree
173174let g: NERDTreeMouseMode= 3
174- let NERDTreeShowHidden= 1 " Show hidden file
175+ let NERDTreeShowHidden= 1
175176let NERDTreeIgnore= [' .git' ]
176177let g: NERDTreeMapJumpPrevSibling= " "
177178let g: NERDTreeMapJumpNextSibling= " "
178179let NERDTreeMapOpenSplit= ' s'
179180let NERDTreeMapOpenVSplit= ' v'
180181
181- " Open NERDTree when open directory
182- autocmd StdinReadPre * let s: std_in= 1
183- autocmd VimEnter * if argc () == 1 && isdirectory (argv ()[0 ]) && ! exists (" s:std_in" ) | exe ' NERDTree' argv ()[0 ] | wincmd p | ene | exe ' cd ' .argv ()[0 ] | endif
184-
185182" Coc.nvim setting
186183function ! s: check_back_space () abort
187184 let col = col (' .' ) - 1
@@ -208,7 +205,6 @@ if executable('ag')
208205endif
209206
210207" Ale plugin
211- " let g:ale_fix_on_save = 1
212208let b: ale_linters = [' flake8' , ' pylint' ]
213209let g: ale_fixers = {
214210 \ ' *' : [' remove_trailing_lines' , ' trim_whitespace' ],
@@ -221,7 +217,7 @@ let g:ale_fixers = {
221217 \}
222218
223219" Function
224- " Don't close window, when deleting a buffer
220+ " Don't close window when deleting a buffer
225221command ! Bclose call <SID> BufcloseCloseIt ()
226222function ! <SID> BufcloseCloseIt ()
227223 let l: currentBufNum = bufnr (" %" )
0 commit comments