filetype plugin indent on syntax enable set undodir=~/.vim/undodir set undofile set noswapfile set nobackup set ignorecase set smartcase set encoding=UTF-8 set number set autoindent set expandtab set autoread set wildmenu set scrolloff=8 set incsearch set noerrorbells set hidden set guicursor= set signcolumn=yes set splitright set splitbelow set ttyfast set lazyredraw set completeopt=menu,menuone,noselect set timeout set timeoutlen=300 set updatetime=50 set mouse=a set clipboard+=unnamedplus set shortmess+=c set cmdheight=1 set tabstop=2 set shiftwidth=0 set wildignore+=*/node_modules/**,*/.git/**,*/__pycache__/ nmap Y yy nnoremap j gj nnoremap k gk " vim-fugitive nnoremap gh :diffget //2 nnoremap gl :diffget //3 " leader let mapleader=" " let maplocalleader=" " " vimtex " let g:vimtex_compiler_method = 'lualatex' let g:tex_flavor = 'latex' " in millisecond, used for both CursorHold and CursorHoldI, " use updatetime instead if not defined let g:cursorhold_updatetime = 100 " gruvbox colorscheme gruvbox-material set background=dark " Airline let g:airline_theme = 'gruvbox_material' " fern.vim let g:fern#default_hidden=1 " packer lua plugins = require('plugins') " init language servers lua require('lsp') " init general stuffs lua require('general') " Configure Neoformat. " let g:neoformat_run_all_formatters=1 let g:neoformat_try_node_exe=1 let g:neoformat_enabled_python=['black'] " let g:neoformat_enabled_javascript=['eslint_d'] " let g:neoformat_enabled_typescript=['eslint_d'] nnoremap fo Neoformat " Find files using Telescope command-line sugar. nnoremap ff Telescope find_files nnoremap fg Telescope live_grep nnoremap fb Telescope buffers nnoremap fh Telescope help_tags nnoremap fr Telescope resume " Auto reload file when it changed. autocmd FocusGained * checktime command! ExploreFind let @/=expand("%:t") | execute 'Vexplore' expand("%:h") | normal n nnoremap Fern . -drawer -reveal=% function! s:fern_settings() abort if !exists("b:fern_is_preview") let b:fern_is_preview = 0 endif function! FernPreviewToggle() if b:fern_is_preview :execute "normal \(fern-action-preview:close)" :execute "normal \(fern-action-preview:auto:disable)" nunmap nunmap let b:fern_is_preview = 0 else :execute "normal \(fern-action-preview:open)" :execute "normal \(fern-action-preview:auto:enable)(fern-action-preview:open)" nmap (fern-action-preview:scroll:down:half) nmap (fern-action-preview:scroll:up:half) let b:fern_is_preview = 1 endif endfunction nmap p :call FernPreviewToggle() endfunction augroup fern-settings autocmd! autocmd FileType fern call s:fern_settings() augroup END " Copilot imap