Skip to content

Instantly share code, notes, and snippets.

@michael-wang
Last active August 6, 2021 08:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michael-wang/bee1e63c4c3cfa4ffacb445bf2319b52 to your computer and use it in GitHub Desktop.
Save michael-wang/bee1e63c4c3cfa4ffacb445bf2319b52 to your computer and use it in GitHub Desktop.
set nocompatible
set number
"set cursorline
"set cursorcolumn
set showmatch
set hlsearch
set tabstop=4
set shiftwidth=4
set noexpandtab
set autoindent
syntax enable
syntax on
"Ctrl+/ to clear last search (so highlight of search result dispears).
noremap <silent> <c-_> :let @/ = ""<CR>
" silence the annoying beep!
" https://vim.fandom.com/wiki/Disable_beeping
set noeb vb t_vb=
" set short ttimoutlen so cursor back to normal mode immediately.
set ttimeoutlen=10
let g:rehash256 = 1
let g:molokai_original = 1
colorscheme molokai
" change tilde (~) mark of blank line to molokai's bg color.
" NOT working on Ubuntu, comment out.
"set highlight EndOfBuffer ctermfg=234 ctermbg=234
" Config term
set termwinsize=0*0
execute "set <M-t>=\et"
noremap <silent><M-t> :below term<cr>
" Install vim-plug (plugin manager).
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" Manage plugins with vim-plug
call plug#begin('~/.vim/plugged')
Plug 'justinmk/vim-sneak'
Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries' }
Plug 'fatih/molokai'
Plug 'Shougo/defx.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
call plug#end()
" Config vim-sneak
let g:sneak#label = 1
" Config defx (file explorer)
execute "set <M-f>=\ef"
noremap <silent><M-f> <cmd>Defx -buffer-name="defx" -resume -listed<cr>
call defx#custom#column('filename', {
\ 'min_width': 32,
\ 'max_width': 32,
\ })
call defx#custom#option('_', {
\ 'columns': 'mark:indent:icon:filename:type',
\ 'split': 'vertical',
\ 'winwidth': 40,
\ 'direction': 'topleft',
\ 'resume': v:true,
\ 'toggle': v:true,
\ 'root_marker': "",
\ })
call defx#custom#column('icon', {
\ 'directory_icon': '📁',
\ 'opened_icon': '📂',
\ 'root_icon': '->',
\})
autocmd FileType defx call s:defx_my_settings()
autocmd BufWritePost * call defx#redraw()
function! s:defx_my_settings() abort
set nonumber
"nnoremap <silent><buffer><expr> o defx#do_action('open_or_close_tree')
nnoremap <silent><buffer><expr> <CR>
\ defx#do_action('drop')
nnoremap <silent><buffer><expr> h
\ defx#do_action('cd', ['..'])
nnoremap <silent><buffer><expr> l
\ defx#is_directory() ?
\ defx#do_action('open_tree', 'toggle') :
\ defx#do_action('drop')
nnoremap <silent><buffer><expr> o
\ defx#do_action('new_file')
nnoremap <silent><buffer><expr> O
\ defx#do_action('new_directory')
nnoremap <silent><buffer><expr> .
\ defx#do_action('toggle_ignored_files')
nnoremap <silent><buffer><expr> c
\ defx#do_action('copy')
nnoremap <silent><buffer><expr> p
\ defx#do_action('paste')
nnoremap <silent><buffer><expr> d
\ defx#do_action('remove')
nnoremap <silent><buffer><expr> r
\ defx#do_action('rename')
nnoremap <silent><buffer><expr> m
\ defx#do_action('move')
endfunction
" Config vim-go
set autowrite
map <C-n> :cnext<CR>
map <C-m> :cprevious<CR>
nnoremap <leader>a :cclose<CR>
let g:go_list_type = "quickfix"
let g:go_highlight_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
"let g:go_highlight_function_calls = 1
let g:go_highlight_operators = 1
let g:go_auto_type_info = 1
autocmd Filetype go nmap <buffer> <f2> <Plug>(go-rename)
autocmd Filetype go nmap <buffer> <f4> <Plug>(go-test)
autocmd Filetype go nmap <buffer> <f5> <Plug>(go-build)
autocmd Filetype go nmap <buffer> <f6> <Plug>(go-run)
autocmd Filetype go nmap <buffer> <f12> <Plug>(go-def)
autocmd Filetype go nmap <buffer> gD <Plug>(go-describe)
autocmd FileType go nmap <Leader>i <Plug>(go-info)
if &term =~ '^xterm'
" Cursor in terminal: https://vim.fandom.com/wiki/Configuring_the_cursor
" 0 -> blinking block not working in wsl
" 1 -> blinking block
" 2 -> solid block
" 3 -> blinking underscore
" 4 -> solid underscore
" Recent versions of xterm (282 or above) also support
" 5 -> blinking vertical bar
" 6 -> solid vertical bar
" normal mode
let &t_EI .= "\e[1 q"
" insert mode
let &t_SI .= "\e[3 q"
augroup windows_term
autocmd!
autocmd VimEnter * silent !echo -ne "\e[1 q"
autocmd VimLeave * silent !echo -ne "\e[0 q"
augroup END
endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment