This commit is contained in:
ksyasuda 2022-01-21 17:21:04 -08:00
parent e52d4d1e6b
commit 5d4b7eee41
7 changed files with 520 additions and 270 deletions

View File

@ -1,96 +1,95 @@
syntax on
set laststatus=2 "enable status bar
set number "turn on line numbers
set colorcolumn=80 "set color column on col 80
set laststatus=2
set number
set colorcolumn=80
set tw=80
set shiftwidth=4
set tabstop=4
set autoindent "auto indents code
set smartindent "smart indents code
set hlsearch "highlight search
set smartcase "set search case based on search query
set noerrorbells "no error bells
set title "set title of vim based on file open
set mouse=a " enable mouse in vim
set nospell
set autoindent
set smartindent
set hlsearch
set smartcase
set ignorecase
set noerrorbells
set title
set mouse=a
set relativenumber
set splitright
set expandtab
set cursorline
set scrolloff=8
set sidescrolloff=8
" show candidates for vim commands with tab
set wildmenu
set encoding=UTF-8
set guifont=FiraCode\ Nerd\ Font\ 18
" lsp handled by coc
let g:ale_disable_lsp = 1
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin'
" Plug 'valloric/youcompleteme'
Plug 'tabnine/YouCompleteMe'
Plug 'sheerun/vim-polyglot'
Plug 'vim-scripts/SQLUtilities'
Plug 'itchyny/vim-gitbranch'
Plug 'ap/vim-css-color'
Plug 'wakatime/vim-wakatime'
Plug 'itchyny/lightline.vim'
Plug 'prettier/vim-prettier', { 'do': 'yarn install' }
Plug 'jiangmiao/auto-pairs'
Plug 'mhinz/vim-startify'
Plug 'alvan/vim-closetag'
Plug 'MathSquared/vim-python-sql'
Plug 'MaxMEllon/vim-jsx-pretty'
Plug 'tpope/vim-commentary'
Plug 'dense-analysis/ale'
Plug 'shime/vim-livedown'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug '~/.fzf'
Plug 'tpope/vim-fugitive'
Plug 'kristijanhusak/vim-carbon-now-sh'
Plug 'prabirshrestha/vim-lsp'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'ryanoasis/vim-devicons'
Plug 'morhetz/gruvbox'
Plug 'dracula/vim', { 'as': 'dracula' }
Plug 'tpope/vim-fugitive'
Plug 'pechorin/any-jump.vim'
Plug 'tpope/vim-commentary'
Plug 'shime/vim-livedown'
Plug 'jiangmiao/auto-pairs'
Plug 'alvan/vim-closetag'
Plug 'MaxMEllon/vim-jsx-pretty'
Plug 'ap/vim-css-color'
Plug 'itchyny/lightline.vim'
Plug 'wakatime/vim-wakatime'
Plug 'itchyny/vim-gitbranch'
Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'prettier/vim-prettier', { 'do': 'yarn install' }
Plug 'sheerun/vim-polyglot'
Plug 'dense-analysis/ale'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'maximbaz/lightline-ale'
" On-demand lazy load
Plug 'liuchengxu/vim-which-key', { 'on': ['WhichKey', 'WhichKey!'] }
" colorschemes
Plug 'joshdick/onedark.vim'
Plug 'kaicataldo/material.vim', { 'branch': 'main' }
Plug 'sainnhe/sonokai'
Plug 'romgrk/doom-one.vim'
Plug 'dracula/vim', { 'as': 'dracula' }
call plug#end()
let g:doom_one_terminal_colors = v:true
"------------------------------------------------------------------------------
" Carbon Now
"------------------------------------------------------------------------------
" carbon now
" let g:carbon_now_sh_base_url = 'http://localhost:8888'
let g:carbon_now_sh_browser = 'firefox'
"jump to remembered position in file if available
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
endif
"------------------------------------------------------------------------------
"fzf
"
"------------------------------------------------------------------------------
" This is the default extra key bindings
let g:fzf_commands_expect = 'ctrl-enter'
let g:fzf_buffers_jump = 1
let g:fzf_tags_command = 'ctags -R'
" This is the default option:
" - Preview window on the right with 50% width
" - CTRL-/ will toggle preview window.
" - Note that this array is passed as arguments to fzf#vim#with_preview function.
" - To learn more about preview window options, see `--preview-window` section of `man fzf`.
let g:fzf_preview_window = ['right:50%', 'ctrl-/']
let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.75 } }
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
@ -109,10 +108,6 @@ let g:fzf_action = {
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
"Center of screen and popup
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
" Customize fzf colors to match your color scheme
" - fzf#wrap translates this to a set of `--color` options
let g:fzf_colors =
@ -136,7 +131,9 @@ let g:fzf_colors =
" 'previous-history' instead of 'down' and 'up'.
let g:fzf_history_dir = '~/.local/share/fzf-history'
"------------------------------------------------------------------------------
"livedown
"------------------------------------------------------------------------------
" should markdown preview get shown automatically upon opening markdown buffer
let g:livedown_autorun = 0
" should the browser window pop-up upon previewing
@ -146,6 +143,9 @@ let g:livedown_port = 3001
" the browser to use, can also be firefox, chrome or other, depending on your executable
let g:livedown_browser = "firefox"
"------------------------------------------------------------------------------
"ale
"------------------------------------------------------------------------------
function! FormatShell(buffer) abort
return {
\ 'command': 'shfmt -i=0 -ci -sr'
@ -154,7 +154,6 @@ endfunction
execute ale#fix#registry#Add('shfmt', 'FormatShell', ['sh'], 'shfmt for shell')
"ale
let g:ale_linter_aliases = {'javascriptreact': ['css', 'javascript'], 'typescriptreact': ['css', 'javascript']}
let g:ale_linters = {'javascriptreact': ['css', 'javascript'], 'typescriptreact': ['css', 'javascript'], 'python': ['pylint','pycodestyle', 'pydocstyle'], 'sh': ['shellcheck']}
" Fix files with prettier, and then ESLint.
@ -163,7 +162,9 @@ let g:ale_fixers = {'*': ['remove_trailing_lines', 'trim_whitespace'], 'javascri
let g:ale_fix_on_save = 1
let g:ale_virtualenv_dir_names = ['env']
"------------------------------------------------------------------------------
"vim-closetag
"------------------------------------------------------------------------------
" filenames like *.xml, *.html, *.xhtml, ...
" These are the file extensions where this plugin is enabled.
let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.js,*.ts,*.jsx,*.tsx'
@ -195,7 +196,9 @@ let g:closetag_regions = {
\ 'javascript.jsx': 'jsxRegion',
\ }
"------------------------------------------------------------------------------
" YOUCOMPLETEME (replaced with coc)
"------------------------------------------------------------------------------
let g:ycm_autoclose_preview_window_after_insertion = 1 "close ycm help window after accepting option
let g:ycm_language_server =
\ [
@ -212,6 +215,9 @@ let g:ycm_language_server =
\ ]
let g:ycm_autoclose_preview_window_after_completion = 1
"------------------------------------------------------------------------------
" WAKATIME
"------------------------------------------------------------------------------
let g:wakatime_PythonBinary = '/usr/bin/python' " (Default: 'python')
let g:wakatime_OverrideCommandPrefix = '/usr/bin/wakatime' " (Default: '')
@ -220,13 +226,14 @@ let vim_markdown_preview_github=1
let vim_markdown_preview_toggle=1
let vim_markdown_preview_temp_file=0
"------------------------------------------------------------------------------
"NERDTREE
"autocmd vimenter * NERDTree "launch nerdtree on vim start
"------------------------------------------------------------------------------
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
let g:NERDTreeWinPos = "right" "open nerdtree on the right
let NERDTreeShowHidden=0 "show hidden files use capital 'I' to toggle
let g:NERDTreeWinSize=45
"autocmd VimEnter * wincmd p "put the cursor back into the editing pane on start
let g:NERDTreeGitStatusIndicatorMapCustom = {
\ 'Modified' :'✹',
\ 'Staged' :'✚',
@ -244,14 +251,11 @@ let g:NERDTreeGitStatusUseNerdFonts = 1
autocmd BufEnter * if bufname('#') =~# "^NERD_tree_" && winnr('$') > 1 | b# | endif
"avoid crashes when calling vim-plug functions while the cursor is on the NERDTree window
let g:plug_window = 'noautocmd vertical topleft new'
" NERDTress File highlighting
function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg)
exec 'autocmd filetype nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg
exec 'autocmd filetype nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#'
endfunction
"NERDTree hilight files by extension
call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#282c34')
call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#282c34')
@ -271,7 +275,6 @@ call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#282c34')
call NERDTreeHighlightFile('cpp', 'blue', 'none', 'blue', '#282c34')
call NERDTreeHighlightFile('h', 'cyan', 'none', 'cyan', '#282c34')
call NERDTreeHighlightFile('txt', 'blue', 'none', 'red', '#282c34')
let g:NERDTreeColorMapCustom = {
\ "Modified" : ["#528AB3", "NONE", "NONE", "NONE"],
\ "Staged" : ["#538B54", "NONE", "NONE", "NONE"],
@ -280,37 +283,64 @@ let g:NERDTreeColorMapCustom = {
\ "Clean" : ["#87939A", "NONE", "NONE", "NONE"]
\ }
"------------------------------------------------------------------------------
"PRETTIER
"------------------------------------------------------------------------------
packloadall "enable prettier
let g:prettier#autoformat = 1
let g:prettier#autoformat_require_pragma = 0
let g:prettier#exec_cmd_path = "/usr/bin/prettier"
"LIGHTLINE
" 'onedark', 'material', 'darcula'
let g:lightline = {
\ 'colorscheme': 'deus',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'fugitive', 'filename' ] ],
\ 'right': [ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'charvaluehex', 'fileformat', 'fileencoding', 'filetype' ] ]
\ },
\ 'component_function': {
"------------------------------------------------------------------------------
" Lightline
"------------------------------------------------------------------------------
let g:lightline = {}
" 'one', 'material', 'darcula', 'deus'
let g:lightline.colorscheme = "deus"
let g:lightline.component_function = {
\ 'fugitive': 'MyFugitive',
\ 'readonly': 'Readonly',
\ 'modified': 'Modified',
\ 'filename': 'Filename'
\
\ },
\ 'component': {
\ 'charhexvalue': '0x%B'
\ },
\ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" },
\ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" }
\ 'filename': 'Filename',
\ 'cocstatus': 'coc#status',
\}
let g:lightline.component = { 'charhexvalue': '0x%B' }
let g:lightline.separator = { 'left': "\ue0b0", 'right': "\ue0b2" }
let g:lightline.subseparator = { 'left': "\ue0b1", 'right': "\ue0b3" }
let g:lightline.component_expand = {
\ 'linter_checking': 'lightline#ale#checking',
\ 'linter_infos': 'lightline#ale#infos',
\ 'linter_warnings': 'lightline#ale#warnings',
\ 'linter_errors': 'lightline#ale#errors',
\ 'linter_ok': 'lightline#ale#ok',
\ }
let g:lightline.component_type = {
\ 'linter_checking': 'right',
\ 'linter_infos': 'right',
\ 'linter_warnings': 'warning',
\ 'linter_errors': 'error',
\ 'linter_ok': 'right',
\ }
let g:lightline.active = {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'cocstatus', 'fugitive', 'filename' ] ],
\ 'right': [ [ 'linter_checking', 'linter_errors', 'linter_warnings', 'linter_infos', 'linter_ok' ],
\ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'fileformat', 'fileencoding', 'filetype'] ] }
let g:lightline#ale#indicator_checking = "\uf110 "
let g:lightline#ale#indicator_infos = "\uf129 "
let g:lightline#ale#indicator_warnings = "\uf071 "
let g:lightline#ale#indicator_errors = "\uf05e "
let g:lightline#ale#indicator_ok = "\uf00c "
" Use autocmd to force lightline update.
autocmd User CocStatusChange,CocDiagnosticChange call lightline#update()
function! Modified()
if &filetype == "help"
return ""
@ -344,35 +374,27 @@ function! Filename()
\ ('' != Modified() ? ' ' . Modified() : '')
endfunction
"------------------------------------------------------------------------------
"COLORSCHEME
if !has('gui_running')
set t_Co=256
endif
"------------------------------------------------------------------------------
set t_Co=256
set termguicolors
set noshowmode "disable default vim insert text at bottom
let g:onedark_termcolors=256 "enable 256 colors
" packadd! onedark.vim "add onedark colorcheme may not work
" colorscheme onedark "set colorsheme as onedark
"material theme
" let g:material_theme_style = 'default' | 'palenight' | 'ocean' | 'lighter' | 'darker' | 'default-community' | 'palenight-community' | 'ocean-community' | 'lighter-community' | 'darker-community'
let g:material_terminal_italics = 1
let g:material_theme_style = 'darker'
" let g:material_theme_style = 'default'
" let g:material_theme_style = 'darker-community'
colorscheme material
let g:doom_one_terminal_colors = v:true
" colorscheme doom-one
"Tokyo night conifg
let g:tokyonight_style='night'
let g:tokyonight_transparent_background=1
let g:tokyonight_enable_italic=1
"let g:molokai_original = 1
let g:rehash256 = 1
"bash language server
"------------------------------------------------------------------------------
"""bash language server
"------------------------------------------------------------------------------
if executable('bash-language-server')
au User lsp_setup call lsp#register_server({
\ 'name': 'bash-language-server',
@ -381,15 +403,180 @@ if executable('bash-language-server')
\ })
endif
"------------------------------------------------------------------------------
" NICE COC
"------------------------------------------------------------------------------
set hidden
set nobackup
set nowritebackup
set cmdheight=2
set updatetime=300
" Don't pass messages to |ins-completion-menu|.
set shortmess+=c
" Always show the signcolumn, otherwise it would shift the text each time
" diagnostics appear/become resolved.
if has("nvim-0.5.0") || has("patch-8.1.1564")
" Recently vim can merge signcolumn and number column into one
set signcolumn=number
else
set signcolumn=yes
endif
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion.
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
" Make <CR> auto-select the first completion item and notify coc.nvim to
" format on enter, <cr> could be remapped by other vim plugin
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo code navigation.
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window.
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" Highlight the symbol and its references when holding the cursor.
autocmd CursorHold * silent call CocActionAsync('highlight')
" Symbol renaming.
nmap <leader>rn <Plug>(coc-rename)
" Formatting selected code.
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json,python,py,sh,bash setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder.
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Applying codeAction to the selected region.
" Example: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap keys for applying codeAction to the current buffer.
nmap <leader>ac <Plug>(coc-codeaction)
" Apply AutoFix to problem on the current line.
nmap <leader>qf <Plug>(coc-fix-current)
" Run the Code Lens action on the current line.
nmap <leader>cl <Plug>(coc-codelens-action)
" Map function and class text objects
" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)
" Remap <C-f> and <C-b> for scroll float windows/popups.
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif
" Use CTRL-S for selections ranges.
" Requires 'textDocument/selectionRange' support of language server.
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)
" Add `:Format` command to format current buffer.
command! -nargs=0 Format :call CocActionAsync('format')
" Add `:Fold` command to fold current buffer.
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer.
command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport')
" Add (Neo)Vim's native statusline support.
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Mappings for CoCList
" Show all diagnostics.
nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions.
nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
" Show commands.
nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document.
nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list.
nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
"------------------------------------------------------------------------------
" custom commands
"------------------------------------------------------------------------------
command! Reload execute "source ~/.vimrc"
command! Config execute ":e ~/.vimrc"
"------------------------------------------------------------------------------
"KEYBINDINGS
map <C-c> :nohls<Cr>
map <F2> :NERDTreeToggle<CR>
map <C-n> :NERDTreeToggle<CR>
map <C-s> <Plug>(Prettier)
map<C-c> :nohls<CR>
"------------------------------------------------------------------------------
let mapleader = "\<Space>"
map <F5> :!
map <C-T> :ter++close<CR>
map <C-D> :YcmShowDetailedDiagnostic<CR>
map <C-n> :NERDTreeToggle<CR>
map <C-l> :LivedownToggle<CR>
map <C-o> :FZF ~<CR>
nnoremap <C-T> :wa<CR>:vertical botright term ++kill=term<CR>
" fzf
nmap // :CocCommand fzf-preview.Lines<CR>
nmap ?? :CocCommand fzf-preview.BufferLines<CR>
nmap <leader>sf :FZF<CR>
" buffers
nmap <leader>bb :CocCommand fzf-preview.Buffers<CR>
nmap <leader>bB :CocCommand fzf-preview.AllBuffers<CR>
nmap <leader>bk :bdelete<CR>
nmap <leader>bn :enew<CR>
" git
nmap <leader>gg :tab term ++close lazygit<CR>
nmap <leader>gc :CocCommand fzf-preview.GitLogs<CR>
nmap <leader>gf :CocCommand fzf-preview.GitFiles<CR>
nmap <leader>gs :CocCommand fzf-preview.GitStatus<CR>
" help
nmap <leader>hc :CocCommand fzf-preview.CommandPalette<CR>
nmap <leader>hk :Maps<CR>
" any jump plugin
nmap <leader>j :AnyJump<CR>
" toggle/open
nmap <leader>on :NERDTreeToggle<CR>
nmap <leader>ot :vertical botright ter<CR>
" peek/preview
nmap <leader>pr :CocCommand fzf-preview.CocReferences<Cr>
nmap <leader>pi :CocCommand fzf-preview.CocImplementations<Cr>
nmap <leader>pd :CocCommand fzf-preview.CocDiagnostics<Cr>
" search
nmap <leader>sc :nohls<Cr>
"toggle coc outline
nmap <leader>to :CocOutline<CR>
"which key
set timeoutlen=400
nnoremap <silent> <leader> :WhichKey '<Space>'<CR>

View File

@ -10,12 +10,13 @@ fi
#If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export ZSH="/home/sudacode/.oh-my-zsh"
export ZSH="$HOME/.oh-my-zsh"
export PATH="$HOME/scripts:$PATH"
export PATH="$HOME/Work/scripts:$PATH"
export PATH="$HOME/Work/rofi/:$PATH"
export PATH="$HOME/.bin:$PATH"
export PATH="$HOME/Projects/Python/Sudasong/src/:$PATH"
export PATH="$HOME/.local/bin:$PATH"
export EDITOR=vim
export VISUAL=vim
@ -233,7 +234,7 @@ PS2="===>"
# export PATH="$PATH:`yarn global bin`"
#
# # set terminal color to 256 color
# export TERM=xterm-256color
export TERM=xterm-256color
#
# export PATH=$PATH:/home/sudacode/.local/bin
#
@ -261,7 +262,9 @@ ibus-daemon -drx
export VISUAL=vim
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_DIR="$HOME/.cache"
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
# export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
bindkey '^ ' autosuggest-accept
# source the Xmodmap file to get custom keybindings
@ -287,3 +290,10 @@ export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
# # <<< conda initialize <<<
# neofetch
# added by Snowflake SnowSQL installer
export PATH=/home/sudacode/.bin:$PATH
export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/yubikey-agent/yubikey-agent.sock"
eval $(thefuck --alias)

View File

@ -2,47 +2,22 @@
lvim.log.level = "warn"
lvim.format_on_save = true
lvim.colorscheme = "onedarker"
lvim.leader = "space"
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
-- custom settings
local init_custom_options = function()
local custom_options = {
relativenumber = true,
colorcolumn = "80",
scrolloff = 10,
ignorecase = true,
smartcase = true,
}
for k, v in pairs(custom_options) do
vim.opt[k] = v
end
end
init_custom_options()
lvim.builtin.dashboard.active = true
lvim.builtin.terminal.active = true
-- Nvimtree
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.show_icons.git = 1
lvim.builtin.nvimtree.hide_dotfiles = 0
-- Treesitter
lvim.builtin.treesitter.highlight.enabled = true
lvim.builtin.treesitter.matchup.enable = true
lvim.builtin.treesitter.context_commentstring.enable = true
local components = require("lvim.core.lualine.components")
lvim.builtin.lualine.sections.lualine_a = { "mode" }
lvim.builtin.lualine.sections.lualine_c = { components.python_env }
lvim.builtin.lualine.sections.lualine_y = {
components.location,
}
lvim.builtin.lualine.sections.lualine_y = { components.location, }
lvim.builtin.treesitter.ensure_installed = {
"bash",
"c",
@ -55,11 +30,14 @@ lvim.builtin.treesitter.ensure_installed = {
"rust",
"java",
"yaml",
"dockerfile",
"markdown",
"make"
}
lvim.builtin.treesitter.ignore_install = { "haskell" }
lvim.builtin.treesitter.highlight.enabled = true
-- formatters
local formatters = require "lvim.lsp.null-ls.formatters"
formatters.setup {
{ exe = "black", filetypes = { "python" } },
@ -72,20 +50,21 @@ formatters.setup {
{ exe = "shfmt", filetypes = { "shell", "sh" }, args = {'-i=0','-sr', '-ci'} },
}
-- -- set additional linters
-- linters
local linters = require "lvim.lsp.null-ls.linters"
linters.setup {
{ exe = "flake8", filetypes = { "python" } },
{
exe = "shellcheck",
fieltypes = { "shell" },
args = { "--severity", "warning" },
}
filetypes = { "shell", "sh" },
args = { "--severity", "warning", "--shell", "/bin/bash", "--enable", "check-unassigned-uppercase,add-default-case,deprecate-which" },
},
}
-- lsp signature cfg
local lsp_signature_cfg = {
debug = false, -- set to true to enable debug logging
log_path = vim.fn.stdpath("cache") .. "/lsp_signature.log", -- log dir when debug is on
-- log_path = vim.fn.stdpath("cache") .. "/lsp_signature.log", -- log dir when debug is on
-- default is ~/.cache/nvim/lsp_signature.log
verbose = false, -- show debug line number
@ -109,7 +88,7 @@ local lsp_signature_cfg = {
hi_parameter = "LspSignatureActiveParameter", -- how your parameter will be highlight
max_height = 20, -- max height of signature floating_window, if content is more than max_height, you can scroll down
-- to view the hiding contents
max_width = 150, -- max_width of signature floating_window, line will be wrapped if exceed max_width
max_width = 120, -- max_width of signature floating_window, line will be wrapped if exceed max_width
handler_opts = {
border = "rounded" -- double, rounded, single, shadow, none
},
@ -122,11 +101,11 @@ local lsp_signature_cfg = {
padding = '', -- character to pad on left and right of signature can be ' ', or '|' etc
transparency = nil, -- disabled by default, allow floating win transparent value 1~100
transparency = 85, -- disabled by default, allow floating win transparent value 1~100
shadow_blend = 36, -- if you using shadow as border use this set the opacity
shadow_guibg = 'Black', -- if you using shadow as border use this set the color e.g. 'Green' or '#121315'
timer_interval = 200, -- default timer check interval set to lower value if you want to reduce latency
toggle_key = nil -- toggle signature on and off in insert mode, e.g. toggle_key = '<M-x>'
toggle_key = '<C-l>' -- toggle signature on and off in insert mode, e.g. toggle_key = '<M-x>'
}
-- Additional Plugins
@ -150,7 +129,7 @@ lvim.plugins = {
"rmagatti/goto-preview",
config = function()
require('goto-preview').setup {
width = 120; -- Width of the floating window
width = 100; -- Width of the floating window
height = 25; -- Height of the floating window
default_mappings = false; -- Bind default mappings
debug = false; -- Print debug information
@ -188,6 +167,8 @@ lvim.plugins = {
'wakatime/vim-wakatime',
'ap/vim-css-color',
"p00f/nvim-ts-rainbow",
"tzachar/cmp-tabnine",
"onsails/lspkind-nvim"
}
-- add jedi_language_server
@ -201,16 +182,96 @@ require'lspconfig'.sqlls.setup{}
-- require('lspconfig').bashls.setup{}
require'lspconfig'.bashls.setup{}
-- Setup nvim-cmp.
local cmp = require'cmp'
-- cmp.setup({
-- snippet = {
-- -- REQUIRED - you must specify a snippet engine
-- expand = function(args)
-- -- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
-- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
-- -- require('snippy').expand_snippet(args.body) -- For `snippy` users.
-- -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
-- end,
-- },
-- mapping = {
-- ['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
-- ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
-- ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
-- ['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
-- ['<C-e>'] = cmp.mapping({
-- i = cmp.mapping.abort(),
-- c = cmp.mapping.close(),
-- }),
-- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
-- },
-- sources = cmp.config.sources({
-- { name = 'nvim_lsp' },
-- }, {
-- { name = 'buffer' },
-- })
-- })
-- -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
-- cmp.setup.cmdline('/', {
-- sources = {
-- { name = 'buffer' }
-- }
-- })
-- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
-- cmp.setup.cmdline(':', {
-- sources = cmp.config.sources({
-- { name = 'path' }
-- }, {
-- { name = 'cmdline' }
-- })
-- })
-- Setup lspconfig.
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
require('lspconfig')['jedi_language_server'].setup {
capabilities = capabilities
}
require('lspconfig')['bashls'].setup {
capabilities = capabilities
}
require('lspconfig')['dockerls'].setup {
capabilities = capabilities
}
require('lspconfig')['jsonls'].setup {
capabilities = capabilities
}
require('lspconfig')['sumneko_lua'].setup {
capabilities = capabilities
}
require('lspconfig')['pyright'].setup {
capabilities = capabilities
}
require('lspconfig')['dotls'].setup {
capabilities = capabilities
}
require('lspconfig')['yamlls'].setup {
capabilities = capabilities
}
require('lspconfig')['html'].setup {
capabilities = capabilities
}
require('lspconfig')['eslint'].setup {
capabilities = capabilities
}
-- lsp_signature
require'lsp_signature'.setup()
-- require'lsp_signature'.setup(lsp_signature_cfg)
require('goto-preview').setup {
width = 220; -- Width of the floating window
height = 55; -- Height of the floating window
width = 150; -- Width of the floating window
height = 45; -- Height of the floating window
border = {"", "" ,"", "", "", "", "", ""}; -- Border characters of the floating window
default_mappings = true; -- Bind default mappings
debug = false; -- Print debug information
opacity = nil; -- 0-100 opacity level of the floating window where 100 is fully transparent.
opacity = 55; -- 0-100 opacity level of the floating window where 100 is fully transparent.
resizing_mappings = false; -- Binds arrow keys to resizing the floating window.
post_open_hook = nil; -- A function taking two arguments, a buffer and a window to be ran as a hook.
-- These two configs can also be passed down to the goto-preview definition and implementation calls for one off "peak" functionality.
@ -227,7 +288,7 @@ vim.g.symbols_outline = {
auto_preview = true,
position = 'right',
relative_width = true,
width = 25,
width = 30,
show_numbers = false,
show_relative_numbers = false,
show_symbol_details = true,
@ -273,89 +334,81 @@ vim.g.symbols_outline = {
}
}
vim.api.nvim_set_keymap("n", "ss", "<cmd>SymbolsOutline<CR>", {noremap=true})
-- lsp-kind
local lspkind = require('lspkind')
cmp.setup {
formatting = {
format = lspkind.cmp_format({
with_text = false, -- do not show text alongside icons
maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
-- Setup nvim-cmp.
local cmp = require'cmp'
cmp.setup({
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
-- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
-- require('snippy').expand_snippet(args.body) -- For `snippy` users.
-- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
end,
},
mapping = {
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
['<C-e>'] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
}, {
{ name = 'buffer' },
-- The function below will be called before any actual modifications from lspkind
-- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30))
-- before = function (entry, vim_item)
-- ...
-- return vim_item
-- end
})
})
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline('/', {
sources = {
{ name = 'buffer' }
}
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
})
})
-- Setup lspconfig.
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
require('lspconfig')['jedi_language_server'].setup {
capabilities = capabilities
}
require('lspconfig')['bashls'].setup {
capabilities = capabilities
}
require('lspconfig')['dockerls'].setup {
capabilities = capabilities
}
require('lspconfig')['jsonls'].setup {
capabilities = capabilities
}
require('lspconfig')['sumneko_lua'].setup {
capabilities = capabilities
}
require('lspconfig')['pyright'].setup {
capabilities = capabilities
}
require('lspconfig')['dotls'].setup {
capabilities = capabilities
}
require('lspconfig')['yamlls'].setup {
capabilities = capabilities
}
require('lspconfig')['html'].setup {
capabilities = capabilities
}
require('lspconfig')['eslint'].setup {
capabilities = capabilities
}
-- tabnine
require'cmp'.setup {
sources = {
{ name = 'cmp_tabnine' },
},
}
local source_mapping = {
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
nvim_lua = "[Lua]",
cmp_tabnine = "[TN]",
path = "[Path]",
}
require'cmp'.setup {
sources = {
{ name = 'cmp_tabnine' },
},
formatting = {
format = function(entry, vim_item)
vim_item.kind = lspkind.presets.default[vim_item.kind]
local menu = source_mapping[entry.source.name]
if entry.source.name == 'cmp_tabnine' then
if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then
menu = entry.completion_item.data.detail .. ' ' .. menu
end
vim_item.kind = ''
end
vim_item.menu = menu
return vim_item
end
},
}
-- custom settings
local init_custom_options = function()
local custom_options = {
relativenumber = true,
colorcolumn = "80",
scrolloff = 10,
ignorecase = true,
smartcase = true,
tabstop = 4,
shiftwidth = 4,
undofile = false,
}
for k, v in pairs(custom_options) do
vim.opt[k] = v
end
end
init_custom_options()
-- move windows to right side of screen
vim.cmd("autocmd! BufEnter * if &ft ==# 'help' | wincmd L | endif")
vim.cmd("autocmd! BufEnter * if &ft ==# 'man' | wincmd L | endif")
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
-- lvim.autocommands.custom_groups = {
-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },

View File

@ -12,9 +12,10 @@
;; Use pywal.sh in scripts directory to use colors from an image/wallpaper.
;; main colors
background = #3B4252
; background = #464b55
background = "#24282f"
; background-alt = #4C566A
background-alt = "#464b55"
background-alt = #3B4252
foreground = #ECEFF4
; foreground-alt = #E5E9F0
foreground-alt = "#abb2bf"

View File

@ -145,7 +145,7 @@ font-4 = "Source Han Sans JP:size=8;3"
; modules-center = xwindow xbacklight
; modules-right = ipc clock
modules-left = sep launcher sep i3-workspaces sep chrome flameshot color-picker
modules-left = sep launcher sep bspwm-workspaces sep chrome flameshot color-picker
; modules-left = sep launcher sep bspwm-workspaces sep chrome flameshot color-picker
modules-center = title-icon title sep cust-mpd-icon cust-mpd-prev custom-mpd cust-mpd-next
; modules-right = color-switch sep alsa sep battery sep network sep date sep sysmenu sep
@ -163,7 +163,7 @@ dim-value = 1.0
; If the value is empty or undefined, the atom value
; will be created from the following template: polybar-[BAR]_[MONITOR]
; NOTE: The placeholders are not available for custom values
wm-name = i3
wm-name = bspwm
; Locale used to localize various module data (e.g. date)
; Expects a valid libc locale, for example: sv_SE.UTF-8
@ -212,7 +212,7 @@ tray-scale = 1.0
; Currently supported WM's:
; bspwm
; i3 (requires: `override-redirect = true`)
wm-restack = i3
wm-restack = bspwm
; Set a DPI values used when rendering text
; This only affects scalable fonts

View File

@ -114,7 +114,7 @@ set preview_images true
# Preview images in full color with the external command "ueberzug".
# Images are shown by using a child window.
# Only for users who run X11 in GNU/Linux.
set preview_images_method w3m
set preview_images_method ueberzug
# Delay in seconds before displaying an image with the w3m method.
# Increase it in case of experiencing display corruption.

View File

@ -4,7 +4,7 @@
--embed-subs
# Always extract audio
-x
# -x
# Do not copy the mtime
--no-mtime
@ -12,4 +12,3 @@
# Save all videos under YouTube directory in your home directory
-o ~/Videos/YouTube/%(title)s.%(ext)s