diff --git a/fish/fish_user_key_bindings.fish b/fish/fish_user_key_bindings.fish new file mode 100644 index 0000000..c5da768 --- /dev/null +++ b/fish/fish_user_key_bindings.fish @@ -0,0 +1,8 @@ +function fish_user_key_bindings + bind --preset _ beginning-of-line + bind \eh __fzf_reverse_isearch + bind \eF __fzf_open + bind -M insert \ec '__fzf_cd --hidden' + bind -M insert \ep __fzf_find_file + bind -M insert \ef '__fzf_open --editor' +end diff --git a/i3/config b/i3/config index f1f2a5b..42fbaad 100644 --- a/i3/config +++ b/i3/config @@ -306,9 +306,7 @@ exec_always --no-startup-id fix_xcursor exec --no-startup-id xrandr --output $display2 --primary --output $display3 --auto --rotate left --right-of $display2 --output $display1 --auto --rotate left --left-of $display2 # HB STARTUP ADDITIONS -bindsym Shift+Pause exec --no-startup-id setxkbmap -option "caps:escape" -bindsym Shift+Scroll_Lock exec --no-startup-id setxkbmap -option -exec --no-startup-id setxkbmap -option "caps:escape" +exec --no-startup-id setxkbmap -layout no -variant nodeadkeys -option "caps:escape" exec --no-startup-id redshift-gtk exec --no-startup-id dropbox start & exec --no-startup-id nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=60 diff --git a/nvim/init.vim b/nvim/init.vim index 2da46c5..87ccb46 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -1,13 +1,13 @@ set shell=bash " ----------------------------------------------------------------------------- -" plugins +" PLUGINS " ----------------------------------------------------------------------------- if ! filereadable(expand('~/.config/nvim/autoload/plug.vim')) echo "Downloading junegunn/vim-plug to manage plugins..." silent !mkdir -p ~/.config/nvim/autoload/ silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim endif -let g:coc_global_extensions = [ +let g:coc_global_extensions=[ \ 'coc-fzf-preview', \ 'coc-python', \ 'coc-git', @@ -20,39 +20,28 @@ call plug#begin('~/.config/nvim/plugged') " tools Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} -"Plug 'junegunn/fzf.vim' Plug 'sheerun/vim-polyglot' " language syntax -Plug 'godlygeek/tabular' " help aligning text on tabs Plug 'tpope/vim-fugitive' +Plug 'junegunn/gv.vim' " markdown Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() } } Plug 'plasticboy/vim-markdown' " markdown helper. -Plug 'ferrine/md-img-paste.vim' " helpers Plug 'scrooloose/nerdcommenter' " commenting tool Plug 'tpope/vim-surround' " parentheses helper Plug 'mbbill/undotree' " Persistent undo -Plug 'junegunn/vim-peekaboo' " show paste buffers Plug 'farmergreg/vim-lastplace' " When reopen a buffer, puts the cursor where it was last time Plug 'christoomey/vim-tmux-navigator' " integrate movement in tmux and vim Plug 'haya14busa/vim-asterisk' " better asterisk motions Plug 'bfredl/nvim-miniyank' " nvim bugfix block copy -"Plug 'terryma/vim-multiple-cursors' " multiple cursors via 'C-n' -"Plug 'michaeljsmith/vim-indent-object' " define indent as a group to operate on -"Plug 'liuchengxu/vim-which-key' " popuup for shortcuts like emacs +Plug 'qpkorr/vim-bufkill' " delete buffer without closing window " aesthetics Plug 'chriskempson/base16-vim' " base16 themes -Plug 'junegunn/goyo.vim' " zen mode -Plug 'junegunn/limelight.vim' " highlight current paragraph -Plug 'PotatoesMaster/i3-vim-syntax' " syntax highlighting for i3 file Plug 'chrisbra/Colorizer' " show color codes Plug 'junegunn/rainbow_parentheses.vim' " colorize parentheses " file mgmt Plug 'jeetsukumaran/vim-buffergator' Plug 'scrooloose/nerdtree' -"Plug 'tiagofumo/vim-nerdtree-syntax-highlight' -"Plug 'vifm/vifm.vim' -"Plug 'rafaqz/ranger.vim' " themes Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' @@ -60,45 +49,79 @@ Plug 'junegunn/seoul256.vim' call plug#end() " ----------------------------------------------------------------------------- -" format +" SETTINGS " ----------------------------------------------------------------------------- -set t_Co=256 " Use 256 colors +" colors if filereadable(expand("~/.vimrc_background")) let base16colorspace=256 source ~/.vimrc_background endif -if has("nvim") - if $TERM =~ '^\(rxvt\)\(-.*\)\?$' - set notermguicolors - else - set termguicolors - endif +if $TERM =~ '^\(rxvt\)\(-.*\)\?$' + set notermguicolors +else + set termguicolors endif -"let g:airline_theme='molokai' -let g:airline_theme='qwq' -"let g:airline_theme='badwolf' -"let g:airline_theme='silver' -"let g:airline_theme='raven' " Transparent Background (For i3 and compton) -highlight Normal guibg=NONE ctermbg=NONE -highlight LineNr guibg=NONE ctermbg=NONE +"highlight Normal guibg=NONE ctermbg=NONE +"highlight LineNr guibg=NONE ctermbg=NONE -" ----------------------------------------------------------------------------- -" settings -" ----------------------------------------------------------------------------- -" general -set cmdheight=2 " height of command bar at the bottom. 1 is default -let g:BASH_Ctrl_j='off' " avoid 'C-j' being overridden to newline -let g:BASH_Ctrl_l='off' " avoid 'C-l' being overridden to newline -set updatetime=300 -set timeoutlen=500 -set lazyredraw -set shell=/usr/bin/bash -let $SHELL = "/usr/bin/bash" -set conceallevel=2 +" seoul256 theme config (dark 233-239, light 252-256) +let g:seoul256_background=233 +colo seoul256 -" fold config +" statusline +set cmdheight=1 +let g:airline_powerline_fonts=1 +"let g:airline_theme='molokai' +"let g:airline_theme='qwq' +"let g:airline_theme='badwolf' +"let g:airline_theme='silver' +let g:airline_theme='raven' +let g:airline#extensions#tabline#enabled=1 +let g:airline#extensions#tabline#show_splits=0 +let g:airline#extensions#tabline#show_tabs=0 +let g:airline#extensions#tabline#show_buffers=1 +let g:airline#extensions#tabline#switch_buffers_and_tabs=0 + +" temporary files and undo +set directory=/tmp//,. +set backupdir=/tmp//,. +set undodir=~/.vim/undo/ +set noswapfile +set nowritebackup +set undofile " Persistent undo +set undolevels=500 " Maximum number of changes that can be undone +set undoreload=5000 " Maximum number lines to save for undo on a buffer reload + +" search +set ignorecase " Case insensitive search +set smartcase " ... but case sensitive when uc present + +" cursor +set scrolljump=5 " Line to scroll when cursor leaves screen +set scrolloff=3 " Minumum lines to keep above and below cursor + +" buffers +set splitright " Puts new vsplit windows to the right of the current +set splitbelow " Puts new split windows to the bottom of the current +set hidden " Allow buffer switching without saving + +" buffer +set nowrap " Do not wrap long lines +set cursorline " Highlight current line +set number " Line numbers on + +" parentheses +set showmatch " Show matching brackets/parentthesis +set matchtime=5 " Show matching time + +" files and encodings +set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 +set fileformats=unix,dos,mac + +" indentation and folds +set smartindent set foldmethod=indent set foldlevelstart=20 " zm/M zr/R increase/increase foldlevel (max) @@ -107,86 +130,145 @@ set foldlevelstart=20 " zi toggle folds " zi zj move to next / prev fold -" indentation -set ai " auto indent -set si " smart indent - -" Automatically deletes all trailing whitespace on save. -autocmd BufWritePre * %s/\s\+$//e - -" default new file is markdown -autocmd BufEnter * if &filetype == "" | setlocal ft=markdown | endif - +" tabs set tabstop=4 set softtabstop=4 set shiftwidth=4 -set fileformat=unix -au Filetype python set - \ tabstop=4 - \ softtabstop=4 - \ shiftwidth=4 - -au Filetype markdown,yaml set - \ tabstop=2 - \ softtabstop=2 - \ shiftwidth=2 set expandtab -" -" Disables automatic commenting on newline: -"autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o + +" other +set lazyredraw +set updatetime=300 +set timeoutlen=500 +set conceallevel=2 +set shell=/usr/bin/bash +let $SHELL="/usr/bin/bash" +let g:BASH_Ctrl_j='off' " avoid 'C-j' being overridden to newline +let g:BASH_Ctrl_l='off' " avoid 'C-l' being overridden to newline +highlight clear SignColumn " SignColumn should match background +set shortmess=atOI " No help Uganda information, and overwrite read messages to avoid PRESS ENTER prompts +set listchars=tab:→\ ,eol:↵,trail:·,extends:↷,precedes:↶ +set fillchars=vert:│,stl:\ ,stlnc:\ " ----------------------------------------------------------------------------- -" keybinds +" KEYBINDS " ----------------------------------------------------------------------------- -" general let mapleader="\" let maplocalleader="," -"nmap :WhichKey '' -tmap +nnoremap q: +nnoremap Q +vnoremap v +nnoremap . : +nnoremap , . nmap :noh -if has('nvim') - nmap R :so ~/.config/nvim/init.vim - nmap E :tabe ~/.config/nvim/init.vim -else - nmap R :so ~/.vimrc - nmap E :tabe ~/.vimrc -endif -map q: -nmap Q -map p (miniyank-autoput) -map P (miniyank-autoPut) +nmap :BD +nnoremap R :so ~/.config/nvim/init.vim +nnoremap E :tabe ~/.config/nvim/init.vim +" nerdcommenter: 'c ', 'cl' aligned and 'cu>' remove +" vim-surround: visual 'SA' to wrap in A. Surround 'csAB' to change from A to B, 'dsA' to remove A. Word 'ysiwA' to wrap with A -" search for selected text in visual mode -vnoremap // y/" +" ***************************** +" CLIPBOARD (incl bugfix paste unnamedplus) +set clipboard+=unnamedplus +nmap p (miniyank-autoput) +nmap P (miniyank-autoPut) -" exit terminal -:tnoremap +" ***************************** +" TERMINAL +nmap T :terminal +tmap +tmap -" keep selection after indenting -nmap >>_ -nmap <<_ -vmap >gv -vmap ", 't') + return '' +endfunction +cnoremap +cnoremap +cnoremap +cnoremap EnterSubdir() +map * (asterisk-z*) +map g* (asterisk-gz*) +map g# (asterisk-z#) +map gz# (asterisk-gz#) +let g:asterisk#keeppos=1 -" move between windows by hjkl +" ***************************** +" CURSOR +" vertical movement remapping ala US +map å ( +map ¨ ) +map Å { +map ^ } +map + [ +map \ ] +" Treat long lines as break lines (useful when moving around in them) +nmap j gj +nmap k gk +vmap j gj +vmap k gk +" indenting +nnoremap >>_ +nnoremap <<_ +vnoremap >gv +vnoremap +inoremap +inoremap +inoremap +inoremap +inoremap +inoremap +inoremap + +" ***************************** +" WINDOWS / BUFFERS +let g:tmux_navigator_no_mappings=1 nmap :TmuxNavigateLeft nmap :TmuxNavigateDown nmap :TmuxNavigateUp nmap :TmuxNavigateRight - " make splits and tabs -nmap :vsplit -nmap - :split -nmap o :tabnew % - +nnoremap :vsplit +nnoremap :vnew +nnoremap :split +nnoremap :new +nnoremap T +nnoremap :tabnew +" buffergator & nerdtree +nmap :bprev +nmap :bnext +nmap :tabprev +nmap :tabnext " resize windows with hjkl -nmap < -nmap - -nmap + -nmap > - +nnoremap < +nnoremap - +nnoremap + +nnoremap > +" buffergator & nerdtree +map :NERDTreeToggle +map :BuffergatorToggle +map :BuffergatorTabsToggle +let g:buffergator_mru_cycle_loop=0 +let g:buffergator_suppress_keymaps=1 +let g:buffergator_autoupdate=1 +let g:buffergator_sort_regime='bufnum' +let g:buffergator_display_regime='basename' +let g:buffergator_autodismiss_on_select=0 +let g:buffergator_show_full_directory_path=0 +let g:buffergator_tab_statusline=0 +let g:buffergator_window_statusline=0 " other C-w commands to remember -" BAR maximise " = equalize sizes " T move buffer to new tab " move windows with +HJKL @@ -195,164 +277,8 @@ nmap > " K " L -" remove buffer -nmap d :bpspbnbd -" nmap q :bd - -" fullscreen mode and reset -map :Goyo -map = -map -map _ - -" tab management -nmap h :tabprevious -nmap l :tabnext -nmap :call MoveToNextTab() -nmap :call MoveToPrevTab() -nmap :execute 'silent! tabmove ' . (tabpagenr()-2) -nmap :execute 'silent! tabmove ' . (tabpagenr()+1) - -" fzf -"nmap g :GitFiles -"nmap f :Files -"nmap l :Ag -"nmap L :Lines -"nmap r :Rg -"nmap b :Buffers -"nmap c :Commands -"nmap t :Colors -"nmap m :Marks -"nmap w :Windows -"nmap :Maps - -nmap :CocCommand fzf-preview.ProjectGrep -xmap "sy:CocCommand fzf-preview.ProjectGrep-F"=substitute(substitute(@s, '\n', '', 'g'), '/', '\\/', 'g')" -nmap :CocCommand fzf-preview.ProjectGrep -nmap :CocCommand fzf-preview.Lines --add-fzf-arg=--no-sort --add-fzf-arg=--query="'" -nmap :CocCommand fzf-preview.Lines --add-fzf-arg=--no-sort --add-fzf-arg=--query="'=expand('')" -nmap :CocCommand fzf-preview.MruFiles -nmap :CocCommand fzf-preview.ProjectMruFiles -nmap :CocCommand fzf-preview.DirectoryFiles -nmap :CocCommand fzf-preview.ProjectFiles -nmap :CocCommand fzf-preview.GitStatus -nmap :CocCommand fzf-preview.GitActions -nmap :CocCommand fzf-preview.Buffers -nmap :CocCommand fzf-preview.AllBuffers - -" Close preview window when completion is done -autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif - -" coc menus -imap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ coc#refresh() -imap pumvisible() ? "\" : "\" -imap coc#refresh() -" coc helpers -nmap gP (coc-diagnostic-prev) -nmap gp (coc-diagnostic-next) -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) -nmap gR (coc-refactor) -" coc git -nmap gn (coc-git-nextchunk) -nmap gp (coc-git-prevchunk) -nmap g (coc-git-chunkinfo) -nmap gs :CocCommand git.chunkStage -vmap gs :CocCommand git.chunkStage -nmap gX :CocCommand git.chunkUndo -vmap gX :CocCommand git.chunkUndo - -" vim-fugitive -" g? for fugitive help. :Gdiff, :Gblame, :Gstats '=' expand, '-' add/reset changes, :Gcommit % to commit current file with messag -nmap gg :vertical Gstatus:vertical resize 60 - -" nerdtree -map :NERDTreeToggle - -" nerdcommenter -" 'c ', 'cl' aligned and 'cu>' remove - -" vim-surround -" Visual: 'SA' to wrap in A. Surround: 'csAB' to change from A to B, 'dsA' to remove A. Word: 'ysiwA' to wrap with A - -" tabular -" line up selected text by :Tabularize /[identifier] - -" vim markdown - -" vim asterisk - -map * (asterisk-*) -map # (asterisk-#) -map g* (asterisk-g*) -map g# (asterisk-g#) -map z* (asterisk-z*) -map gz* (asterisk-gz*) -map z# (asterisk-z#) -map gz# (asterisk-gz#) - -" buffergator -map :BuffergatorToggle -map :BuffergatorTabsToggle -nmap j :BuffergatorMruCyclePrev -nmap k :BuffergatorMruCycleNext - -" ----------------------------------------------------------------------------- -" plugin config -" ----------------------------------------------------------------------------- -" tmux navigator -let g:tmux_navigator_no_mappings=1 - -" undotree defaults -set undodir=~/.vim/undo/ - -" Goyo plugin makes text more readable when writing prose: -let g:goyo_width=120 -let g:goyo_height=85 -let g:goyo_linenr=1 -function! s:goyo_enter() - Limelight -endfunction - -function! s:goyo_leave() - highlight Normal guibg=NONE ctermbg=NONE - highlight LineNr guibg=NONE ctermbg=NONE - Limelight! -endfunction -autocmd! User GoyoEnter nested call goyo_enter() -autocmd! User GoyoLeave nested call goyo_leave() - -" Limelight -let g:limelight_conceal_ctermfg='gray' " Color name (:help cterm-colors) or ANSI code -let g:limelight_conceal_guifg='DarkGray' " Color name (:help gui-colors) or RGB color -let g:limelight_default_coefficient=0.7 -let g:limelight_paragraph_span=0 " Number of preceding/following paragraphs to include (default: 0) -let g:limelight_priority=-1 " Highlighting priority (default: 10). Set it to -1 not to overrule hlsearch -let g:limelight_bop='^\n^' -let g:limelight_eop='\ze\n\n' - -" NerdTree -" Nerd tree autostart if empty -" autocmd vimenter * NERDTree -"autocmd StdinReadPre * let s:std_in=1 -"autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif -"autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif -" Nerd tree binding -"autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif - -" Airline -let g:airline#extensions#tabline#enabled=1 -let g:airline#extensions#tabline#show_splits=0 -"let g:airline#extensions#tabline#show_tabs=0 -let g:airline#extensions#tabline#show_buffers = 0 -let g:airline#extensions#tabline#switch_buffers_and_tabs=0 -let g:airline_powerline_fonts=1 - +" ***************************** +" MARKDOWN " vim-markdown let g:vim_markdown_new_list_item_indent=0 let g:vim_markdown_conceal=0 @@ -360,7 +286,6 @@ let g:vim_markdown_conceal_code_blocks=0 let g:vim_markdown_math=1 let g:vim_markdown_folding_disabled=0 let g:vim_markdown_math=0 - " markdown preview let g:mkdp_auto_start=0 " auto start on moving into let g:mkdp_auto_close=0 " auto close on moving away @@ -375,40 +300,66 @@ let g:mkdp_preview_options={ " sync_scroll_type: 'middle', 'top' or 'relative' " hide_yaml_meta: if hide yaml metadata, default is 1 -" md-img-paste -autocmd FileType markdown nmap p :call mdip#MarkdownClipboardImage() +" ***************************** +" GIT +" vim-fugitive +" g? for fugitive help. :Gdiff, :Gblame, :Gstats '=' expand, '-' add/reset changes, :Gcommit % to commit current file with messag +nmap gg :vertical Gstatus:vertical resize 60 +" gv.vim +map gv :GV +map gf :GV! +map gl :GV? +" coc git +nmap gn (coc-git-nextchunk) +nmap gp (coc-git-prevchunk) +nmap g (coc-git-chunkinfo) +nmap gs :CocCommand git.chunkStage +vmap gs :CocCommand git.chunkStage +nmap gX :CocCommand git.chunkUndo +vmap gX :CocCommand git.chunkUndo +" coc fzf +nmap :CocCommand fzf-preview.GitStatus +nmap :CocCommand fzf-preview.GitActions -" peekaboo -let g:peekaboo_window='vert bo 80new' -let g:peekaboo_delay=1000 -let g:peekaboo_compact=0 +" ***************************** +" COC FZF +nmap :CocCommand fzf-preview.ProjectGrep +xmap "sy:CocCommand fzf-preview.ProjectGrep-F"=substitute(substitute(@s, '\n', '', 'g'), '/', '\\/', 'g')" +nmap :CocCommand fzf-preview.ProjectGrep +nmap :CocCommand fzf-preview.Lines --add-fzf-arg=--no-sort --add-fzf-arg=--query="'" +nmap :CocCommand fzf-preview.Lines --add-fzf-arg=--no-sort --add-fzf-arg=--query="'=expand('')" +nmap :CocCommand fzf-preview.MruFiles +nmap :CocCommand fzf-preview.ProjectMruFiles +nmap :CocCommand fzf-preview.DirectoryFiles +nmap :CocCommand fzf-preview.ProjectFiles +nmap :CocCommand fzf-preview.Buffers +nmap :CocCommand fzf-preview.AllBuffers +let g:fzf_preview_command='bat --color=always --plain {-1}' " Installed bat +let g:fzf_preview_grep_cmd='rg --smart-case --line-number --no-heading --color=never' -" coc +" ***************************** +" COC OTHER +" coc menus +let g:coc_node_path='/usr/bin/node' function! s:check_back_space() abort let col=col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction -nmap K :call show_documentation() -let g:coc_node_path = '/usr/bin/node' -let g:fzf_preview_command = 'bat --color=always --plain {-1}' " Installed bat -let g:fzf_preview_grep_cmd = 'rg --smart-case --line-number --no-heading --color=never' - -" vim asterisk -let g:asterisk#keeppos = 1 - -" buffgator -let g:buffergator_mru_cycle_loop = 0 -let g:buffergator_suppress_keymaps = 1 -let g:buffergator_autoupdate = 1 -let g:buffergator_sort_regime = 'mru' -let g:buffergator_display_regime = 'basename' -let g:buffergator_autodismiss_on_select = 0 - -" ----------------------------------------------------------------------------- -" functions -" ----------------------------------------------------------------------------- -" coc -" show documentation in preview window +imap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() +imap pumvisible() ? "\" : "\" +imap coc#refresh() +" coc helpers +nmap gP (coc-diagnostic-prev) +nmap gp (coc-diagnostic-next) +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) +nmap gR (coc-refactor) +" show coc documentation in preview window function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('') @@ -416,162 +367,18 @@ function! s:show_documentation() call CocAction('doHover') endif endfunction +nmap K :call show_documentation() -" for moving of tabs -if !exists("*MoveToPrevTab") - function MoveToPrevTab() - "there is only one window - if tabpagenr('$') == 1 && winnr('$') == 1 - return - endif - "preparing new window - let l:tab_nr=tabpagenr('$') - let l:cur_buf=bufnr('%') - if tabpagenr() != 1 - close! - if l:tab_nr == tabpagenr('$') - tabprev - endif - sp - else - close! - exe "0tabnew" - endif - "opening current buffer in new window - exe "b".l:cur_buf - endfunc -endif - -if !exists("*MoveToNextTab()") - function MoveToNextTab() - "there is only one window - if tabpagenr('$') == 1 && winnr('$') == 1 - return - endif - "preparing new window - let l:tab_nr=tabpagenr('$') - let l:cur_buf=bufnr('%') - if tabpagenr() < tab_nr - close! - if l:tab_nr == tabpagenr('$') - tabnext - endif - sp - else - close! - tabnew - endif - "opening current buffer in new window - exe "b".l:cur_buf - endfunc -endif - - -" ----------------------------------------------------------------------------- -" default settings config -" ----------------------------------------------------------------------------- - -" default.vim - Better vim than the default -" Maintainer: Liu-Cheng Xu -" Version: 1.0 -" vim: et ts=2 sts=2 sw=2 - -set shortmess=atOI " No help Uganda information, and overwrite read messages to avoid PRESS ENTER prompts -set ignorecase " Case insensitive search -set wildignorecase -set smartcase " ... but case sensitive when uc present -set scrolljump=5 " Line to scroll when cursor leaves screen -set scrolloff=3 " Minumum lines to keep above and below cursor -set nowrap " Do not wrap long lines -set splitright " Puts new vsplit windows to the right of the current -set splitbelow " Puts new split windows to the bottom of the current -set mousehide " Hide the mouse cursor while typing -set hidden " Allow buffer switching without saving -set ruler " Show the ruler -set showcmd " Show partial commands in status line and Selected characters/lines in visual mode -set showmode " Show current mode in command-line -set showmatch " Show matching brackets/parentthesis -set matchtime=5 " Show matching time -set report=0 " Always report changed lines -set linespace=0 " No extra spaces between rows - -set winminheight=0 - -set listchars=tab:→\ ,eol:↵,trail:·,extends:↷,precedes:↶ - -set whichwrap+=<,>,h,l " Allow backspace and cursor keys to cross line boundaries - -set termencoding=utf-8 -set fileencoding=utf-8 -set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 - -set wildignore+=*swp,*.class,*.pyc,*.png,*.jpg,*.gif,*.zip -set wildignore+=*/tmp/*,*.o,*.obj,*.so " Unix -set wildignore+=*\\tmp\\*,*.exe " Windows - -" Visual shifting (does not exit Visual mode) -vnoremap < >gv -" Treat long lines as break lines (useful when moving around in them) -nmap j gj -nmap k gk -vmap j gj -vmap k gk - -set nobackup -set noswapfile -set nowritebackup - -set cursorline " Highlight current line -set fileformats=unix,dos,mac " Use Unix as the standard file type -set number " Line numbers on -set fillchars=vert:│,stl:\ ,stlnc:\ - -" Annoying temporary files -set directory=/tmp//,. -set backupdir=/tmp//,. - -highlight clear SignColumn " SignColumn should match background - -if has('unnamedplus') - set clipboard+=unnamedplus -else - set clipboard+=unnamed -endif - -set undofile " Persistent undo -set undolevels=500 " Maximum number of changes that can be undone -set undoreload=5000 " Maximum number lines to save for undo on a buffer reload - -" Insert mode shortcut -inoremap -inoremap -inoremap -inoremap -inoremap -" Bash like -inoremap -inoremap -inoremap -" Command mode shortcut -cnoremap -cnoremap -cnoremap -cnoremap -cnoremap -cnoremap -cnoremap -cnoremap -" Quit visual mode -vnoremap v -" Move to the start of line -nmap H ^ -" Move to the end of line -nmap L $ -" Quick command mode -nmap : -" In the quickfix window, is used to jump to the error under the -" cursor, so undefine the mapping there. -autocmd BufReadPost quickfix nmap -" Open shell in vim -map ' :terminal +" ***************************** +" autocmd +augroup myAu " A unique name for the group. DO NOT use the same name twice! + autocmd! + autocmd FileType python set tabstop=4 softtabstop=4 shiftwidth=4 + autocmd FileType markdown,yaml set tabstop=2 softtabstop=2 shiftwidth=2 + autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o " Disables automatic commenting on newline + autocmd FileType * RainbowParentheses() + autocmd BufEnter * if &filetype == "" | setlocal ft=markdown | endif " default new file is markdown + autocmd BufWritePre * %s/\s\+$//e " Automatically deletes all trailing whitespace on save. + autocmd BufReadPost quickfix nmap " quickfix + autocmd CompleteDone * if pumvisible() == 0 | pclose | endif " bugfix +augroup end diff --git a/old/.bashrc b/old/.bashrc new file mode 100644 index 0000000..74c5007 --- /dev/null +++ b/old/.bashrc @@ -0,0 +1,149 @@ +# +# ~/.bashrc +# + +[[ $- != *i* ]] && return + +colors() { + local fgc bgc vals seq0 + + printf "Color escapes are %s\n" '\e[${value};...;${value}m' + printf "Values 30..37 are \e[33mforeground colors\e[m\n" + printf "Values 40..47 are \e[43mbackground colors\e[m\n" + printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n" + + # foreground colors + for fgc in {30..37}; do + # background colors + for bgc in {40..47}; do + fgc=${fgc#37} # white + bgc=${bgc#40} # black + + vals="${fgc:+$fgc;}${bgc}" + vals=${vals%%;} + + seq0="${vals:+\e[${vals}m}" + printf " %-9s" "${seq0:-(default)}" + printf " ${seq0}TEXT\e[m" + printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m" + done + echo; echo + done +} + +[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion + +# Change the window title of X terminals +case ${TERM} in + xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*) + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' + ;; + screen*) + PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' + ;; +esac + +use_color=true + +# Set colorful PS1 only on colorful terminals. +# dircolors --print-database uses its own built-in database +# instead of using /etc/DIR_COLORS. Try to use the external file +# first to take advantage of user additions. Use internal bash +# globbing instead of external grep binary. +safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM +match_lhs="" +[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" +[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null \ + && match_lhs=$(dircolors --print-database) +[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true + +if ${use_color} ; then + # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 + if type -P dircolors >/dev/null ; then + if [[ -f ~/.dir_colors ]] ; then + eval $(dircolors -b ~/.dir_colors) + elif [[ -f /etc/DIR_COLORS ]] ; then + eval $(dircolors -b /etc/DIR_COLORS) + fi + fi + + if [[ ${EUID} == 0 ]] ; then + PS1='\[\033[01;31m\]\w\[\033[01;31m\] [\t] \$\[\033[00m\] ' + else + PS1='\[\033[01;32m\]\w\[\033[01;32m\] [\t] \$\[\033[00m\] ' + fi + + alias ls='ls --color=auto' + alias grep='grep --colour=auto' + alias egrep='egrep --colour=auto' + alias fgrep='fgrep --colour=auto' +else + if [[ ${EUID} == 0 ]] ; then + # show root@ when we don't have colors + PS1='\u@\h \w [\t] \$ ' + else + PS1='\u@\h \w [\t] \$ ' + fi +fi + +unset use_color safe_term match_lhs sh + +alias cp="cp -i" # confirm before overwriting something +alias df='df -h' # human-readable sizes +alias free='free -m' # show sizes in MB +alias np='nano -w PKGBUILD' +alias more=less + +xhost +local:root > /dev/null 2>&1 + +complete -cf sudo + +# Bash won't get SIGWINCH if another process is in the foreground. +# Enable checkwinsize so that bash will check the terminal size when +# it regains control. #65623 +# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) +shopt -s checkwinsize + +shopt -s expand_aliases + +# export QT_SELECT=4 + +# Enable history appending instead of overwriting. #139609 +shopt -s histappend + +# +# # ex - archive extractor +# # usage: ex +ex () +{ + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1;; + *.7z) 7z x $1 ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + +[ -f ~/.fzf.bash ] && source ~/.fzf.bash + +# Base16 Shell +BASE16_SHELL="$HOME/.config/base16-shell/" +[ -n "$PS1" ] && \ + [ -s "$BASE16_SHELL/profile_helper.sh" ] && \ + eval "$("$BASE16_SHELL/profile_helper.sh")" + +source /usr/share/nvm/init-vnm.sh diff --git a/old/.zprofile b/old/.zprofile new file mode 100644 index 0000000..d288c6a --- /dev/null +++ b/old/.zprofile @@ -0,0 +1,14 @@ +export VISUAL=/usr/bin/nvim +export EDITOR=/usr/bin/nvim +export BROWSER=/usr/bin/chromium +export QT_QPA_PLATFORMTHEME="qt5ct" +export GTK2_RC_FILES="$HOME/.gtkrc-2.0" + +# cuda stuff +export CUDA_HOME=/opt/cuda +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64 +PATH=${CUDA_HOME}/bin:${PATH} +export PATH + +# MKL AMD fix +export MKL_DEBUG_CPU_TYPE=5 diff --git a/old/.zshrc b/old/.zshrc new file mode 100644 index 0000000..73769f0 --- /dev/null +++ b/old/.zshrc @@ -0,0 +1,44 @@ +# Lines configured by zsh-newuser-install +HISTFILE=~/.zhistory +HISTSIZE=10000 +SAVEHIST=10000 +setopt nomatch +unsetopt autocd +bindkey -v +# End of lines configured by zsh-newuser-install +# The following lines were added by compinstall +zstyle :compinstall filename '/home/hjalmarlucius/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +# more history stuff +REPORTTIME=3 # Report command running time if it is more than 3 seconds +setopt INC_APPEND_HISTORY # Add commands to history as they are entered, don't wait for shell to exit +setopt EXTENDED_HISTORY # Also remember command start time and duration +setopt HIST_IGNORE_ALL_DUPS # Do not keep duplicate commands in history +setopt HIST_IGNORE_SPACE # Do not remember commands that start with a whitespace + +# default ls settings +alias ls='ls -hat --group-directories-first' +ls --color=auto &> /dev/null && alias ls='ls --color=auto' +export CLICOLOR=1 + +# fuzzy find +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh +bindkey '^y' fzf-cd-widget + +# configure custom command prompt +_setup_ps1() { + GLYPH="▲" + [ "x$KEYMAP" = "xvicmd" ] && GLYPH="▼" + PS1="%F{red}[%F{cyan}%*%F{red}] %(?.%F{cyan}.%F{red})$GLYPH%f %(1j.%F{cyan}[%j]%f .)%F{cyan}%~%f %(!.%F{red}#%f .)" +} +_setup_ps1 + +# Base16 Shell +BASE16_SHELL="$HOME/.config/base16-shell/" +[ -n "$PS1" ] && \ + [ -s "$BASE16_SHELL/profile_helper.sh" ] && \ + eval "$("$BASE16_SHELL/profile_helper.sh")" diff --git a/ranger/rc.conf b/ranger/rc.conf index a927f59..d754b35 100644 --- a/ranger/rc.conf +++ b/ranger/rc.conf @@ -426,15 +426,15 @@ map gT tab_move -1 map gn tab_new ~ map gc tab_close map uq tab_restore -map tab_open 1 -map tab_open 2 -map tab_open 3 -map tab_open 4 -map tab_open 5 -map tab_open 6 -map tab_open 7 -map tab_open 8 -map tab_open 9 +map w1 tab_open 1 +map w2 tab_open 2 +map w3 tab_open 3 +map w4 tab_open 4 +map w5 tab_open 5 +map w6 tab_open 6 +map w7 tab_open 7 +map w8 tab_open 8 +map w9 tab_open 9 # Sorting map or set sort_reverse! diff --git a/root/.tmux.conf b/root/.tmux.conf index d1a1d23..c5796d4 100644 --- a/root/.tmux.conf +++ b/root/.tmux.conf @@ -29,6 +29,12 @@ set -g default-terminal "tmux-256color" set -g base-index 1 setw -g pane-base-index 1 +# pane title +setw -g pane-border-status top +setw -g pane-border-format ' #{=/-20/…:pane_title} [#{=/-20/…:pane_current_command}] #(pgrep -P "#{pane_pid}" | tr "\n" " ")#{pane_current_path} #{?alternate_on, ,}' +#set -g pane-border-format "#P: #{pane_current_command}" + + # Automatically set window title set-window-option -g automatic-rename on set-option -g set-titles on @@ -41,8 +47,8 @@ set-option -g set-titles on # Set new prefix # Note : you can press super key by set M. # (tested with tty only) -set -g prefix C-a -bind C-a send-prefix +set -g prefix M-a +bind M-a send-prefix # First remove *all* keybindings unbind -a @@ -52,19 +58,18 @@ bind ? list-keys bind d detach-client bind D choose-client bind : command-prompt +bind Enter command-prompt #bind \ show-messages # Copy mode -bind c copy-mode +bind v copy-mode # clipboard control bind P paste-buffer bind -T copy-mode-vi v send-keys -X begin-selection -#bind -T copy-mode-vi y send-keys -X copy-selection bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard" bind -T copy-mode-vi r send-keys -X rectangle-toggle - - +bind -T copy-mode-vi Escape send-keys -X cancel # Refresh client bind R refresh-client \; display-message "Refresh already" @@ -133,7 +138,7 @@ bind -n M-0 if-shell 'tmux select-window -t :10' '' 'new-window -t :10' bind Q kill-pane # clear selected pane -bind-key b send-keys -R \; clear-history +bind-key b send-keys -R \; clear-history \; send-keys Enter # present a menu of URLs to open from the visible pane. sweet. bind u capture-pane \;\