diff options
author | xyz <gky44px1999@gmail.com> | 2021-12-13 02:08:24 -0800 |
---|---|---|
committer | xyz <gky44px1999@gmail.com> | 2021-12-13 02:08:24 -0800 |
commit | a6549d3d0e26524cd1f3e388e3da6b4ff466cca4 (patch) | |
tree | 5c649a56abf134b684d8a5ccf4f2adefa5436257 /home/xyz/.config/nvim | |
parent | f9ddfd7a94290e2271df55585d93b97190c5897a (diff) |
move cfgc files to their location by git rm then git add them
Diffstat (limited to 'home/xyz/.config/nvim')
-rw-r--r-- | home/xyz/.config/nvim/init.vim | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/home/xyz/.config/nvim/init.vim b/home/xyz/.config/nvim/init.vim new file mode 100644 index 00000000..5807ab88 --- /dev/null +++ b/home/xyz/.config/nvim/init.vim @@ -0,0 +1,150 @@ +" if without, nvim with no file will give error because it's not defined? +let fenc_bef = 0 + +" https://github.com/junegunn/vim-plug +call plug#begin() +" https://github.com/junegunn/fzf.vim#commands +" seems only need junegunn/fzf.vim, no need junegunn/fzf if already installed fzf with pacman +"Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +"Plug 'junegunn/fzf.vim' +"Plug 'vim-perl/vim-perl', { 'for': 'perl', 'do': 'make clean carp dancer highlight-all-pragmas moose test-more try-tiny' } +Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(0) } } +" chriskempson/base16-vim doesn't do bold/italic for markdown syntax, and not maintained +" fnune/base16-vim and RRethy/nvim-base16 seem both work, both support tree-sitter +Plug 'fnune/base16-vim' +" nvim-treesitter does not support markdown right now, so wait +"Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " We recommend updating the parsers on update +" use latest vim-markdown +Plug 'tpope/vim-markdown' +" alternatives: h-hg/fcitx.nvim, rlue/vim-barbaric, lilydjwg/fcitx.vim +Plug 'rlue/vim-barbaric' +" alternatives: 'thinca/vim-ref' with 'eiiches/vim-ref-info', 'HiPhish/info.vim', 'alx741/vinfo' +Plug 'HiPhish/info.vim' +call plug#end() + +" next line must put below `Plug 'glacambre/firenvim'`, else if click github issue textarea, then click elsewhere, then click textarea, textarea will not be selected (no cursor in it), not sure why +let g:firenvim_config = { 'localSettings': { '.*': { 'takeover': 'never' } } } + +let g:infoprg = '/usr/bin/info' + +" I use only one return for better readability +function Autocmd_set_fenc() + " need to test &modifiable for gO + if &modifiable && (&fileencoding != "utf-8") + let l:fenc_bef = &fileencoding + setlocal fileencoding=utf-8 + unsilent echom ":w to rewrite as utf-8" + return l:fenc_bef + else + return &fileencoding + endif +endfunction + +" not fully understood augroup, recommanded in :help +" https://www.youtube.com/watch?v=dBBUOO1PRIU +augroup mycmd + autocmd! + " disable auto line break (tc) and insert comment (cro) + autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=t + " auto rewrite as utf-8 if not when :w + " if use FileType *, nvim can't recognize some file extensions, ex: .csv + autocmd BufRead * let fenc_bef = Autocmd_set_fenc() + " similar to filetype.vim code, use setfiletype + " .csx seems not c# but c# script file, this works tho + " set syntax=cs also works + autocmd BufNewFile,BufRead *.csx setfiletype cs +augroup END + +" :h markdown, for vim default tpope/vim-markdown +"let g:markdown_folding = 1 +let g:markdown_minlines = 1500 +"let g:markdown_fenced_languages = ['python', 'sh', 'vim', 'c', 'cpp'] + +" netrw-p preview vertial split +let g:netrw_preview = 1 +let g:netrw_winsize = 20 + +" seems needs this for autocmd FileType * to work? +filetype plugin on + +" fold is slow and buggy, at least for different kinds of vim-markdown, disable it, not sure if works or not +set nofoldenable + +language en_US +set number relativenumber + +" need next line for base16 colorscheme to work? +set termguicolors +colorscheme base16-tomorrow-night + +" set dir to current editing file's dir +set autochdir + +" always use system for ALL instead of use + and * operator? +"set clipboard+=unnamedplus + +" Spaces & Tabs +set tabstop=4 " number of visual spaces per TAB +set softtabstop=4 " number of spaces in tab when editing +set shiftwidth=4 " number of spaces to use for autoindent +"set expandtab " tabs are space + +" https://www.zhihu.com/question/22363620/answer/21199296 +" last line seems is default to neovim but not vim +set fileencodings=ucs-bom,utf-8,utf-16,gbk,big5,gb18030,latin1 +set encoding=utf-8 + +" some file on win10 display as unix but is dos +if has('win32') + set fileformats=dos + " windows 10 bug, need this to change cursor back to vertical bar after leaving neovim + " the number after ver seems no effects, maybe because neovim is exited + " https://github.com/alacritty/alacritty/issues/2839#issuecomment-766421840 + " use of ! after autocmd see youtube video above, not fully understood + autocmd! VimLeave * set guicursor=a:ver25 +endif + +" don't generate those three types of files +set nobackup +set noswapfile +set noundofile + +" gg=G work for .xml files now,:h matchit-activate +" https://stackoverflow.com/questions/21408222/vim-indent-xml-file/28365920#28365920 +packadd! matchit + +" search case sensitive only if have uppercase +set ignorecase +set smartcase + +" map ctrl+h/j/k/l to move between split windows +map <C-h> <C-w>h +map <C-j> <C-w>j +map <C-k> <C-w>k +map <C-l> <C-w>l + +" moving in long line +nnoremap k gk +nnoremap j gj + +nnoremap o o<Esc> +nnoremap O O<Esc> + +" maybe useful if use mapleader in the future: https://www.slant.co/topics/7423/~which-key-works-best-as-vim-leader +" for searching command in manpages +map <leader>- /^ *- +map <leader>* /\*\*.*\*\*<CR> + +" default statusline:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P +set statusline+=%< +set statusline+=%f " %F or 1CTRL+G to show full path +set statusline+=\ %m +set statusline+=%= +set statusline+=\ %y +"set statusline+=\ %{&fileencoding?&fileencoding:&encoding} +" below line doesn't work as expected, not sure why +"set statusline+=\ %{fenc_bef?fenc_bef:&fileencoding} +set statusline+=\ %{fenc_bef} +set statusline+=\ \[%{&fileformat}\] +set statusline+=\ %-10.(%l,%c%V%) +set statusline+=\ %P |