Skip to content

Instantly share code, notes, and snippets.

@exdeniz
Created April 21, 2020 06:03
Show Gist options
  • Save exdeniz/9539b695d95c5d8fec705769c24c777c to your computer and use it in GitHub Desktop.
Save exdeniz/9539b695d95c5d8fec705769c24c777c to your computer and use it in GitHub Desktop.
VIM
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
" Navigate key
nnoremap <F2> :NERDTreeToggle<cr>
nnoremap <C-S-L> :tabn<CR>
nnoremap <C-S-H> :tabp<CR>
nnoremap <C-N> :tabnew<CR>
" copy
" vmap <C-c> y<Esc>i
" vmap <C-x> d<Esc>i
" imap <C-v> <Esc>pi
" imap <C-y> <Esc>ddi
" map <C-z> <Esc>
" imap <C-z> <Esc>ui
"<Ctrl-X> -- cut (goto visual mode and cut)
imap <C-X> <C-O>vgG
vmap <C-X> "*x<Esc>i
"<Ctrl-C> -- copy (goto visual mode and copy)
imap <C-C> <C-O>vgG
vmap <C-C> "*y<Esc>i
"<Ctrl-A> -- copy all
imap <C-A> <C-O>gg<C-O>gH<C-O>G<Esc>
vmap <C-A> <Esc>gggH<C-O>G<Esc>i
"<Ctrl-V> -- paste
nm \\paste\\ "=@*.'xy'<CR>gPFx"_2x:echo<CR>
imap <C-V> x<Esc>\\paste\\"_s
vmap <C-V> "-cx<Esc>\\paste\\"_x
" Specify a directory for plugins
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.vim/plugged')
" You will load your plugin here
" Make sure you use single quotes
" Initialize plugin system
"
Plug 'arcticicestudio/nord-vim'
Plug 'tpope/vim-sensible'
Plug 'rstacruz/vim-opinion'
Plug 'tmux-plugins/vim-tmux-focus-events'
Plug 'takac/vim-hardtime'
Plug 'unblevable/quick-scope'
" Detect indent
Plug 'tpope/vim-sleuth'
Plug 'ryanoasis/vim-devicons'
Plug 'svermeulen/vim-easyclip'
Plug 'rakr/vim-one', { 'as': 'one' }
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'sheerun/vim-polyglot'
Plug 'cohama/lexima.vim'
Plug 'tpope/vim-sleuth'
Plug 'bagrat/vim-buffet'
Plug 'mhinz/vim-startify'
Plug 'tpope/vim-unimpaired'
Plug 'mg979/vim-visual-multi'
Plug 'vim-scripts/vim-auto-save'
" Plug 'jiangmiao/auto-pairs'
Plug 'majutsushi/tagbar'
" Plug 'tmsvg/pear-tree'
Plug 'wellle/targets.vim'
" Посмотреть потом, кайфово но пока тормозит.
Plug 'wellle/context.vim'
" CSS
Plug 'ap/vim-css-color'
Plug 'hail2u/vim-css3-syntax'
Plug 'iloginow/vim-stylus'
" Plug '/usr/local/opt/fzf'
Plug 'scrooloose/nerdtree'
"Plug 'fpanettieri/nerdtree-sync'
Plug 'unkiwii/vim-nerdtree-sync'
Plug 'junegunn/fzf.vim'
Plug 'easymotion/vim-easymotion'
"
"Plug 'Yggdroot/LeaderF', { 'do': './install.sh' }
Plug 'airblade/vim-gitgutter'
Plug 'bongoman/taskpaper.vim'
Plug 'kdheepak/lazygit.vim'
" multi
" Plug 'tomtom/tcomment_vim'
Plug 'preservim/nerdcommenter'
Plug 'ludovicchabant/vim-gutentags'
" Plug 'tmhedberg/SimpylFold'
" Plug 'Konfekt/FastFold'
Plug 'vim-syntastic/syntastic'
" php
" Plug 'rayburgemeestre/phpfolding.vim'
" Plug 'alvan/vim-closetag'
" Plug 'othree/html5.vim'
" JS
" Plug 'Shougo/neoinclude.vim'
" Plug 'jsfaint/coc-neoinclude'
" Plug 'neoclide/coc.nvim', {'tag': '*', 'do': { -> coc#util#install()}}
"
Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}
" Any-jump can be used with any language, but definitions search only available for supported languages. This is not a problem in general, so use any-jump freely on any code project.
Plug 'pechorin/any-jump.vim'
Plug 'wincent/terminus'
call plug#end()
source ~/.vim/config/plugin.vim
" Theme setup
" if (empty($TMUX))
" if (has("nvim"))
" "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
" let $NVIM_TUI_ENABLE_TRUE_COLOR=1
" endif
" "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 >
" "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd >
" " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 >
" if (has("termguicolors"))
" set termguicolors
" endif
" endif
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
let g:one_allow_italics = 1
colorscheme one
" set background=dark " for the dark version
" set guifont=Iosevka\ Light\:h14
" set guifont=JetBrainsMono\ Light\:h14
set guifont=Iosevka\ Nerd\ Font\ Mono\ Light:\h14
set encoding=UTF-8
set nocompatible
set termguicolors
set clipboard=unnamedplus
set mouse=a
set updatetime=300
set shortmess+=c
set signcolumn=yes
set number relativenumber
set lazyredraw
set ruler
set autoindent
set foldmethod=syntax
set splitbelow
set splitright
set smartindent
" set cindent
set smarttab
set autoindent
set wrap
set linebreak
set breakindentopt=shift:2
set whichwrap=b,s,<,>,[,]
set wildignore+=**/node_modules/**,**/dist/**,**_site/**,*.swp,*.png,*.jpg,*.gif,*.webp,*.jpeg,*.map
" let g:python2_host_prog = '/usr/bin/python2'
let g:python3_host_prog = '/usr/bin/python3'
" Keys
let mapleader = ' '
map <leader>s :source ~/.vimrc<CR>
map <leader>p :GFiles --exclude-standard --others --cached<CR>
" command! -bang -nargs=? -complete=dir GFiles
" \ call fzf#vim#gitfiles(<q-args>, {'options': ['--layout=reverse', '--info=inline', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh {}']}, <bang>0)
command! -bang -nargs=? -complete=dir GFiles
\ call fzf#vim#gitfiles(<q-args>, fzf#vim#with_preview(), <bang>0)
map <leader>h :History:<CR>
map <leader>b :Buffers<CR>
map <leader>v :Rg<CR>
function! RipgrepFzf(query, fullscreen)
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
let initial_command = printf(command_fmt, shellescape(a:query))
let reload_command = printf(command_fmt, '{q}')
let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
endfunction
command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)
"""""""""""""""""""""""""""""
" FZF floating window "
"""""""""""""""""""""""""""""
" Using the custom window creation function
let g:fzf_layout = { 'window': 'call FloatingFZF()' }
set winbl=7 " aesthetics
" Function to create the custom floating window
function! FloatingFZF()
" creates a scratch, unlisted, new, empty, unnamed buffer
" to be used in the floating window
let buf = nvim_create_buf(v:false, v:true)
" 40% of the height
let height = float2nr(&lines * 0.6)
" 70% of the height
let width = float2nr(&columns * 0.7)
" horizontal position (centralized)
let horizontal = float2nr((&columns - width) / 2)
" vertical position (centralized)
let vertical = float2nr((&lines - height) / 2)
let opts = {
\ 'relative': 'editor',
\ 'row': vertical,
\ 'col': horizontal,
\ 'width': width,
\ 'height': height
\ }
" open the new window, floating, and enter to it
call nvim_open_win(buf, v:true, opts)
endfunction
" command! -bang -nargs=* Rg
" \ call fzf#vim#grep(
" \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
" \ fzf#vim#with_preview(), <bang>0)
" map <leader><leader> <Plug>(easymotion-prefix)
" Buffets
nmap <leader>1 <Plug>BuffetSwitch(1)
nmap <leader>2 <Plug>BuffetSwitch(2)
nmap <leader>3 <Plug>BuffetSwitch(3)
nmap <leader>4 <Plug>BuffetSwitch(4)
nmap <leader>5 <Plug>BuffetSwitch(5)
nmap <leader>6 <Plug>BuffetSwitch(6)
nmap <leader>7 <Plug>BuffetSwitch(7)
nmap <leader>8 <Plug>BuffetSwitch(8)
nmap <leader>9 <Plug>BuffetSwitch(9)
nmap <leader>0 <Plug>BuffetSwitch(10)
noremap <silent> <Tab> :bn<CR>
noremap <silent> <S-Tab> :bp<CR>
noremap <Leader><Tab> :Bw<CR>
noremap <Leader><S-Tab> :Bw!<CR>
noremap <C-t> :tabnew split<CR>
let g:buffet_always_show_tabline = 1
let g:buffet_powerline_separators = 0
let g:buffet_show_index = 1
let g:buffet_tab_icon = "\uf00a"
let g:buffet_left_trunc_icon = "\uf0a8"
let g:buffet_right_trunc_icon = "\uf0a9"
let g:buffet_max_plug = 9
function! g:BuffetSetCustomColors()
hi! BuffetCurrentBuffer cterm=NONE ctermbg=5 ctermfg=8 guibg=#5E81AC guifg=#FFFFFF
hi! BuffetBuffer cterm=NONE ctermbg=10 ctermfg=8 guibg=#4c566a guifg=#FFFFFF
hi! BuffetTab cterm=NONE ctermbg=4 ctermfg=8 guibg=#81A1C1 guifg=#FFFFFF
hi! BuffetActiveBuffer cterm=NONE ctermbg=10 ctermfg=2 guibg=#5E81AC guifg=#FFFFFF
hi! BuffetTrunc cterm=NONE ctermbg=10 ctermfg=8 guibg=#4c566a guifg=#FFFFFF
" hi! BuffetLeftTrunc cterm=NONE ctermbg=5 ctermfg=8 guibg=#5E81AC guifg=#5E81AC
" hi! BuffetRightTrunc cterm=NONE ctermbg=5 ctermfg=8 guibg=#4c566a guifg=#5E81AC
" hi! BuffetEnd cterm=NONE ctermbg=5 ctermfg=8 guibg=#4c566a guifg=#5E81AC
endfunction
" Airline
let g:airline_theme='one'
"let g:airline#extensions#tabline#enabled = 1
"let g:airline#extensions#tabline#formatter = 'jsformatter'
" Coc
let g:airline#extensions#coc#enabled = 1
let airline#extensions#coc#error_symbol = 'E:'
let airline#extensions#coc#warning_symbol = 'W:'
let airline#extensions#coc#stl_format_err = '%E{[%e(#%fe)]}'
let airline#extensions#coc#stl_format_warn = '%W{[%w(#%fw)]}'
" FZF
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
let g:fzf_tags_command = 'uctags'
autocmd VimEnter *
\ command! -bang -nargs=* Tags call fzf#vim#tags(<q-args>, {'options': '-n1'}, <bang>0)
" CSS
augroup VimCSS3Syntax
autocmd!
autocmd FileType css setlocal iskeyword+=-
augroup END
nnoremap <Leader>t :BTags<CR>
nnoremap <Leader>tt :Tags<CR>
let g:gutentags_file_list_command = "rg --files --follow"
let g:gutentags_ctags_executable = '/usr/bin/uctags'
set statusline+=%{gutentags#statusline()}
let g:gutentags_ctags_exclude = ['local/*', 'html/build/*', 'html/node_modules/*', 'node_modules', 'build']
let g:gutentags_ctags_tagfile = '.ctags'
let g:gutentags_file_list_command = {
\ 'markers': {
\ '.git': 'git ls-files',
\ },
\ }
let g:gutentags_generate_on_new = 1
let g:tagbar_ctags_bin='/usr/bin/uctags'
let g:tagbar_autopreview=1
nmap <a-BS> :TagbarToggle<CR>
autocmd! BufWritePost *.vim,.vimrc source ~/.vimrc
let g:EasyClipPreserveCursorPositionAfterYank = 1
let g:EasyClipAlwaysMoveCursorToEndOfPaste = 1
let g:EasyClipAutoFormat = 1
imap <c-v> <plug>EasyClipInsertModePaste
vnoremap > >gv
vnoremap < <gv
nmap P o<ESC>p
source ~/.vim/config/keys.vim
source ~/.vim/config/coc.vim
source ~/.vim/config/nerdtree.vim
"autocmd FileType html setlocal foldmethod=indent
" autocmd FileType php setlocal foldmethod=indent
"autocmd FileType html setlocal fdl=5
let g:auto_save_silent = 1
autocmd FileType taskpaper AutoSaveToggle
let g:closetag_filenames = '*.html,*.xhtml,*.phtml, *.php'
let g:closetag_xhtml_filenames = '*.xhtml,*.jsxm *.js'
let g:closetag_shortcut = '>'
let g:closetag_close_shortcut = '<leader>>'
let g:NERDSpaceDelims = 1
let g:NERDCompactSexyComs = 1
let g:NERDTrimTrailingWhitespace = 1
"let g:NERDToggleCheckAllLines = 1
"
let g:NERDTreeHighlightCursorline = 1
au InsertLeave * silent exec "! python ~/Project/switch-sway/keyboard.py"
" set t_ZH=^[[3m
set t_ZR=^[[23m
" set t_8b=^[[48;2;%lu;%lu;%lum
" set t_8f=^[[38;2;%lu;%lu;%lum
let &t_SI = "\e[6 q"
let &t_EI = "\e[2 q"
" optional reset cursor on start:
augroup myCmds
au!
autocmd VimEnter * silent !echo -ne "\e[2 q"
augroup END
" nmap <silent> <Bs> :CocCommand explorer<CR>
let g:Lf_StlSeparator = { 'left': "\ue0b0", 'right': "\ue0b2", 'font': "Iosevka Nerd Font Mono" }
let g:Lf_WindowPosition = 'popup'
let g:Lf_PreviewInPopup = 1
let g:Lf_ShortcutF = "<leader>pp"
" noremap <leader>h :Leaderf cmdHistory<CR>
" noremap <leader>ph :Leaderf tag<CR>
" noremap <leader>fb :<C-U><C-R>=printf("Leaderf buffer %s", "")<CR><CR>
" noremap <leader>fm :<C-U><C-R>=printf("Leaderf mru %s", "")<CR><CR>
" noremap <leader>ft :<C-U><C-R>=printf("Leaderf bufTag %s", "")<CR><CR>
" noremap <leader>fl :<C-U><C-R>=printf("Leaderf line %s", "")<CR><CR>
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
" let g:syntastic_always_populate_loc_list = 1
" let g:syntastic_auto_loc_list = 1
" let g:syntastic_check_on_open = 1
" let g:syntastic_check_on_wq = 1
"
" noremap "+y y:call system("wl-copy", @")<cr>
" nnoremap "+p :let @"=substitute(system("wl-paste --no-newline"), '<C-v><C-m>', '', 'g')<cr>p
" nnoremap "*p :let @"=substitute(system("wl-paste --no-newline --primary"), '<C-v><C-m>', '', 'g')<cr>p
"
"
" let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
"
let g:context_presenter = 'nvim-float'
let g:pear_tree_smart_openers = 1
let g:pear_tree_smart_closers = 1
let g:pear_tree_smart_backspace = 1
let g:any_jump_ignored_files = ['*.tmp', '*.temp', 'build/**/*.*']
let g:polyglot_disabled = ['stylus']
" HardTime
let g:hardtime_ignore_buffer_patterns = [ "CustomPatt[ae]rn", "NERD.*" ]
let g:hardtime_ignore_quickfix = 1
let g:hardtime_maxcount = 5
"lazygit
nnoremap <silent> <leader>lg :LazyGit<CR>
let g:lazygit_floating_window_winblend = 0 " transparency of floating window
let g:lazygit_floating_window_scaling_factor = 0.9 " scaling factor for floating window
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment