" Author : @MineralwaterXu " Special Thanks : @theniceboy " === " === Auto load for the first time " === if empty(glob('~/.config/nvim/autoload/plug.vim')) silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif " ==================== " === Editor Setup === " ==================== " === " === Editor behavior " === set number set relativenumber set cursorline set wrap set showcmd set wildmenu set hlsearch set incsearch set ignorecase set smartcase " === " === Basic Mappings " === " set as let mapleader=" " " syntax syntax on " Save & quit noremap Q :q noremap S :w " Open the vimrc file anytime noremap rc :e ~/.config/nvim/init.vim " Search noremap :nohlsearch " === " === Cursor movement " === " ^ " k " < h l > " j " v " J/K keys for 5 times j/k (faster navigation) noremap J 5j noremap K 5k noremap = nzz noremap - Nzz " === " === Window management " === " Disable the default s key noremap s " split the screens to up (horizontal), down (horizontal), left (vertical), right (vertical) map sk :set nosplitbelow:split:set splitbelow map sj :set splitbelow:split map sh :set nosplitright:vsplit:set splitright map sl :set splitright:vsplit " Resize splits with arrow keys map :res +5 map :res -5 map :vertical resize-5 map :vertical resize+5 " Place the two screens up and down noremap s[ tK " Place the two screens side by side noremap s] tH " === " === MarkdownPreview Mappings " === nmap mp MarkdownPreview nmap ms MarkdownPreviewStop " === " === Install Plugins with Vim-Plug " === call plug#begin('~/.config/nvim/plugged') " Pretty Dress Plug 'bling/vim-bufferline' Plug 'bpietravalle/vim-bolt' Plug 'ajmwagar/vim-deus' " Status line Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " Other visual enhancement Plug 'ryanoasis/vim-devicons' Plug 'luochen1990/rainbow' Plug 'mg979/vim-xtabline' Plug 'wincent/terminus' " Markdown Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug'] } Plug 'dhruvasagar/vim-table-mode', { 'on': 'TableModeToggle', 'for': ['text', 'markdown', 'vim-plug'] } Plug 'mzlogin/vim-markdown-toc', { 'for': ['gitignore', 'markdown', 'vim-plug'] } " LaTeX Plug 'lervag/vimtex' " FZF Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' " Undo Tree Plug 'mbbill/undotree' " Vim Visual Multi Plug 'mg979/vim-visual-multi', {'branch': 'master'} call plug#end() set re=0 " === " === Dress up my vim " === set termguicolors " enable true colors support let $NVIM_TUI_ENABLE_TRUE_COLOR=1 "set background=dark "let ayucolor="mirage" "let g:oceanic_next_terminal_bold = 1 "let g:oceanic_next_terminal_italic = 1 "let g:one_allow_italics = 1 "color dracula "color one color deus "color gruvbox "let ayucolor="light" "color ayu "color xcodelighthc "set background=light "set cursorcolumn hi NonText ctermfg=gray guifg=grey10 "hi SpecialKey ctermfg=blue guifg=grey70 " ===================== Start of Plugin Settings ===================== " === " === vim-airline-theme " === let g:airline_theme= 'deus' let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enable = 1 let g:airline#extensions#branch#enable = 1 " === " === rainbow " === let g:rainbow_active = 1 " === " === MarkdownPreview " === let g:mkdp_auto_start = 0 let g:mkdp_auto_close = 0 let g:mkdp_refresh_slow = 1 let g:mkdp_command_for_global = 0 let g:mkdp_open_to_the_world = 0 let g:mkdp_open_ip = '' let g:mkdp_echo_preview_url = 0 let g:mkdp_browser = '' let g:mkdp_browserfunc = '' let g:mkdp_preview_options = { \ 'mkit': {}, \ 'katex': {}, \ 'uml': {}, \ 'maid': {}, \ 'disable_sync_scroll': 0, \ 'sync_scroll_type': 'middle', \ 'hide_yaml_meta': 1 \ } let g:mkdp_markdown_css = '' let g:mkdp_highlight_css = '' let g:mkdp_port = '' let g:mkdp_page_title = '「${name}」' " === " === vim-table-mode " === noremap tm :TableModeToggle " === " === vim-markdown-toc " === let g:vmt_cycle_list_item_markers = 1 let g:vmt_fence_text = 'TOC' let g:vmt_fence_closing_text = '/TOC' " === " === vimtex " === let g:tex_flavor = 'latex' autocmd TextChanged,TextChangedI silent write " === " === Undotree " === noremap U :UndotreeToggle let g:undotree_DiffAutoOpen = 1 let g:undotree_SetFocusWhenToggle = 1 let g:undotree_ShortIndicators = 1 let g:undotree_WindowLayout = 2 let g:undotree_DiffpanelHeight = 8 let g:undotree_SplitWidth = 24 function g:Undotree_CustomMap() nmap k UndotreeNextState nmap j UndotreePreviousState nmap K 5UndotreeNextState nmap J 5UndotreePreviousState endfunc " ===================== End of Plugin Settings ===================== " === " === Necessary Commands to Execute " === exec "nohlsearch"