Last active
August 6, 2021 08:00
-
-
Save michael-wang/bee1e63c4c3cfa4ffacb445bf2319b52 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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