Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2019
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 13.00 KB | None | 0 0
  1.     let mapleader="\<Space>"
  2.     let maplocalleader="\\"
  3.  
  4.     " Vim {{{
  5.         let g:startify_custom_header=[
  6.             \ '                                            %.#                                             ',
  7.             \ '                                          %%% ###                                           ',
  8.             \ '      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   % ****###       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  ',
  9.             \ '      @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/   ********###     &%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% / ',
  10.             \ '      @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/   **********##    &%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% / ',
  11.             \ '      @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%,/   ************    @*%%%%%%%%%%%%%%%%%%%%%%%%%%%%/// ',
  12.             \ '           &@%%%%%%%%%%%%%%%%%% //       ,*************        @&%%%%%%%%%%%%%%%%%%%%%///   ',
  13.             \ '           @@%%%%%%%%%%%%%%%%%% //      *****************    @@@&%%%%%%%%%%%%%%%%%%%///     ',
  14.             \ '           @@%%%%%%%%%%%%%%%%%% //   *******************   @@@@%%%%%%%%%%%%%%%%%%%,//       ',
  15.             \ '           @@%%%%%%%%%%%%%%%%%% //   *****************   @@@@%%%%%%%%%%%%%%%%%%% //         ',
  16.             \ '           @@%%%%%%%%%%%%%%%%%% //   ***************   @@@@%%%%%%%%%%%%%%%%%%% //           ',
  17.             \ '           @@%%%%%%%%%%%%%%%%%% //   *************   @@@@%%%%%%%%%%%%%%%%%%% //             ',
  18.             \ '           @@%%%%%%%%%%%%%%%%%% //   ***********   @@@@%%%%%%%%%%%%%%%%%%% //               ',
  19.             \ '           @@%%%%%%%%%%%%%%%%%% //   *********   @@@@%%%%%%%%%%%%%%%%%%% //                 ',
  20.             \ '           @@%%%%%%%%%%%%%%%%%% //   *******   @@@@%%%%%%%%%%%%%%%%%%% //.                  ',
  21.             \ '           @@%%%%%%%%%%%%%%%%%% //   *****   @@@@%%%%%%%%%%%%%%%%%%%*//*   ##               ',
  22.             \ '           @@%%%%%%%%%%%%%%%%%% //   ***   @@@@%%%%%%%%%%%%%%%%%%%#///   **,###             ',
  23.             \ '           @@%%%%%%%%%%%%%%%%%% //   *   @@@@%%%%%%%%%%%%%%%%%%%%///   ******.###           ',
  24.             \ '           @@%%%%%%%%%%%%%%%%%% //     @@@@%%%%%%%%%%%%%%%%%%%%///   **********.###         ',
  25.             \ '      %%   @@%%%%%%%%%%%%%%%%%% //   @@@@%%%%%%%%%%%%%%%%%%%%///   **************.###       ',
  26.             \ '    %%%*   @@%%%%%%%%%%%%%%%%%% // @@@@%%%%%%%%%%%%%%%%%%%%///   ******************.###     ',
  27.             \ '  %%%/**   @@%%%%%%%%%%%%%%%%%% //@@@#%%%%%%%%%%%%%%%%%%%///   .********************* ###   ',
  28.             \ '%%%/****   @@%%%%%%%%%%%%%%%%%% /@@(%%%%%%%%%%%%%%%%%%%///    ************************* ### ',
  29.             \ ',,,*****   @@%%%%%%%%%%%%%%%%%% @*%%%%%%%%%%%%%%%%%%%*//    ****************************,,, ',
  30.             \ '  ,,,***   @@%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%.//    ****************************,,,   ',
  31.             \ '    ,,,*   @@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#        ****************************,,,     ',
  32.             \ '      ,,   @@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%  ****************************,,,       ',
  33.             \ '           @@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%  **************************,,,         ',
  34.             \ '           @@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  .%%%%%( *************************.,,           ',
  35.             \ '           @@%%%%%%%%%%%%%%%%%%%%%%%%%%%% //        ************************.,,             ',
  36.             \ '           @@%%%%%%%%%%%%%%%%%%%%%%%%%%.//    ****************************.,,               ',
  37.             \ '           @@%%%%%%%%%%%%%%%%%%%%%%%%(/  ........  **          ****                         ',
  38.             \ '           @@%%%%%%%%%%%%%%%%%%%%%%%//     %%%%%% **    %%%%%%%    %%%%%%%%    %%%%%%%%     ',
  39.             \ '           @@%%%%%%%%%%%%%%%%%%%%%//    * %%%%%%  **** (%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     ',
  40.             \ '           @@%%%%%%%%%%%%%%%%%%%//    ** /%%%%%, ****  %%%%%        %%%%%       %%%%%%      ',
  41.             \ '           @@%%%%%%%%%%%%%%%%%//    ***  %%%%%% ***** %%%%%  ***.  %%%%%        %%%%%       ',
  42.             \ '           @@%%%%%%%%%%%%%%%//.   ***** %%%%%%  **** #%%%%% ** ,, %%%%%%       %%%%%%       ',
  43.             \ '           @@%%%%%%%%%%%%%//*   ****** %%%%%%  ****  %%%%%   ,,   %%%%%       /%%%%%        ',
  44.             \ '           @@%%%%%%%%%%%*//   ,,,****  %%%%%% ***** %%%%%. ,,    %%%%%(       %%%%%%        ',
  45.             \ '           @@%%%%%%%%%.//       ,,,*  %%%%%%  **** %%%%%% ,     .%%%%%       %%%%%%         ',
  46.             \ '           @@*%%%%%% //           ,, %%%%%%... **  %%%%%..      %%%%%        %%%%%..        ',
  47.             \ '                                               **                                           ',
  48.             \ '                                      ,,,********* ,,                                       ',
  49.             \ '                                        ,,,***** ,,                                         ',
  50.             \ '                                          ,,,* ,,                                           ',
  51.             \ '                                            , ,                                             ',
  52.             \ '                                                                                            ',
  53.             \ ]
  54.     " }}}
  55.  
  56.     " Setup {{{
  57.         if v:progname == 'vi'
  58.         set noloadplugins
  59.         endif
  60.    
  61.         augroup vimrc
  62.             autocmd!
  63.         augroup END
  64.     " }}}
  65.  
  66.     " Plugins {{{
  67.         call plug#begin('~/.vim/plugged')
  68.           Plug 'prettier/vim-prettier', { 'do': 'npm install' }
  69.           Plug 'neoclide/coc.nvim', {'branch': 'release'}
  70.           Plug 'dense-analysis/ale'
  71.           Plug 'scrooloose/nerdtree'
  72.           Plug 'Xuyuanp/nerdtree-git-plugin'
  73.           Plug 'ctrlpvim/ctrlp.vim'
  74.           Plug 'terryma/vim-multiple-cursors'
  75.           Plug 'sheerun/vim-polyglot'
  76.           Plug 'tpope/vim-surround'
  77.           Plug 'tpope/vim-sensible'
  78.           Plug 'tpope/vim-fugitive'
  79.           Plug 'tpope/vim-eunuch'
  80.           Plug 'psliwka/vim-smoothie'
  81.           Plug 'Yggdroot/indentLine'
  82.           Plug 'Raimondi/delimitMate'
  83.           Plug  'lifepillar/vim-solarized8'
  84.           Plug 'wincent/ferret'
  85.           Plug 'wincent/terminus'
  86.           Plug 'wincent/loupe'
  87.           Plug 'wincent/scalpel'
  88.           Plug 'melonmanchan/vim-tmux-resizer'
  89.           Plug 'christoomey/vim-tmux-navigator'
  90.           Plug 'roxma/vim-tmux-clipboard'
  91.           Plug 'ryanoasis/vim-devicons'
  92.           Plug 'SirVer/ultisnips'
  93.           Plug 'honza/vim-snippets'
  94.           Plug 'morhetz/gruvbox'
  95.         call plug#end()
  96.     " }}}
  97.  
  98.     " Plugin Settings {{{
  99.    
  100.     " COC {{{
  101.         " Remap keys for gotos
  102.         nmap <silent> gd <Plug>(coc-definition)
  103.         nmap <silent> gy <Plug>(coc-type-definition)
  104.         nmap <silent> gi <Plug>(coc-implementation)
  105.         nmap <silent> gr <Plug>(coc-references)
  106.         " Remap for rename current word
  107.         nmap <leader>nn <Plug>(coc-rename)
  108.         " Create mappings for function text object, requires document symbols feature of languageserver.
  109.         xmap if <Plug>(coc-funcobj-i)
  110.         xmap af <Plug>(coc-funcobj-a)
  111.         omap if <Plug>(coc-funcobj-i)
  112.         omap af <Plug>(coc-funcobj-a)
  113.    
  114.     " }}}
  115.    
  116.     " NERDTree  {{{
  117.         let g:NERDTreeCaseSensitiveSort=1
  118.         let NERDTreeAutoDeleteBuffer = 1
  119.         let NERDTreeShowHidden=1
  120.         noremap <c-p> :NERDTreeToggle<CR>
  121.     " }}}
  122.    
  123.         " Ale  {{{
  124.         let g:ale_linters = {
  125.           \ 'javascript': ['eslint'],
  126.           \ 'javascript.jsx': ['eslint'],
  127.           \}
  128.         " }}}
  129.    
  130.     " CTRLP {{{
  131.       let g:ctrlp_map = '<leader>t'
  132.       nmap <leader>r  :CtrlPBuffer<CR>
  133.       let g:ctrlp_show_hidden = 1
  134.    
  135.       let g:ctrlp_custom_ignore = {
  136.         \   'dir' : '\.git$\|build$\|bower_components\|node_modules\|dist\|target' ,
  137.         \   'file' : '\v\.(exe|dll|lib)$'
  138.         \ }
  139.    
  140.       " open in vertical split by default
  141.       let g:ctrlp_prompt_mappings = {
  142.         \ 'AcceptSelection("e")': ['<c-v>', '<2-LeftMouse>'],
  143.         \ 'AcceptSelection("v")': ['<cr>', '<RightMouse>'],
  144.         \ }
  145.     "}}}
  146.    
  147.     " NERDComment {{{
  148.     "  inoremap ,m <C-o>:call NERDComment(0,"toggle")<C-m>
  149.     " }}}
  150.    
  151.     " Prettier {{{
  152.       let g:prettier#exec_cmd_async = 1
  153.       let g:prettier#autoformat = 1
  154.    
  155.       autocmd vimrc BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync
  156.    
  157.     " }}}
  158.    
  159.     " Ferret {{{
  160.       nmap <leader>f <Plug>(FerretAck)
  161.       let g:FerretExecutable="rg,ag,ack,ack-grep"
  162.       let g:FerretMaxResults=1000
  163.       let s:excludes = [
  164.       \ '.git',
  165.       \ 'bin',
  166.       \ 'dist',
  167.       \ 'node_modules',
  168.       \ 'obj',
  169.       \ 'packages',
  170.       \ 'tags'
  171.       \]
  172.       let &grepprg = "rg --hidden -g '!" . join(s:excludes, "' -g '!") . "' -S --vimgrep"
  173.       let g:FerretExecutableArguments = {
  174.       \   'rg': '--smart-case --vimgrep --no-heading --no-config --max-columns 4096'
  175.       \ }
  176.     " }}}
  177.    
  178.     " Loupe {{{
  179.       let g:loupeCenterResults=1
  180.     " }}}
  181.    
  182.     " Devicons {{{
  183.       let g:WebDevIconsUnicodeDecorateFolderNodes = 1
  184.       let g:NERDTreeDirArrowExpandable = ''
  185.       let g:NERDTreeDirArrowCollapsible = ''
  186.       let g:DevIconsEnableFoldersOpenClose = 1
  187.       let g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol = ' '
  188.       let g:DevIconsDefaultFolderOpenSymbol = ''
  189.     "}}}
  190.    
  191.     " Ultisnips and Snippets {{{
  192.       " tab to move into menu, ctrl-y to complete
  193.       let g:UltiSnipsExpandTrigger='<Nop>'
  194.       let g:coc_snippet_next = '<TAB>'
  195.       let g:coc_snippet_prev = '<S-TAB>'
  196.    
  197.       inoremap <silent><expr> <TAB>
  198.         \ pumvisible() ? "\<C-n>" :
  199.         \ <SID>check_back_space() ? "\<TAB>" :
  200.         \ coc#refresh()
  201.      
  202.       function! s:check_back_space() abort
  203.           let col = col('.') - 1
  204.           return !col || getline('.')[col - 1]  =~# '\s'
  205.       endfunction
  206.    
  207.     " }}}
  208.    
  209.     "}}}
  210.  
  211.     " Remaps {{{
  212.         "
  213.         inoremap hk <Esc>
  214.         "
  215.         :nmap <c-q> :q<CR>
  216.         :imap <c-q> <Esc>:q<CR>
  217.         "
  218.         :nmap <c-s> :w<CR>
  219.         :imap <c-s> <Esc>:w<CR>
  220.         "
  221.         nmap ; :
  222.         " Default reg
  223.         nnoremap ]p "0p
  224.         "
  225.         nnoremap <space> za
  226.         "
  227.         nmap u <c-r>
  228.         nmap <s-u> u
  229.        
  230.     " }}}
  231.  
  232.     " Colors {{{
  233.         filetype plugin on
  234.         filetype indent plugin on
  235.         let &t_Co=256
  236.         hi def link jsObjectProp Identifier
  237.         syntax enable
  238.         set termguicolors
  239.         let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
  240.         let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
  241.         set background=dark
  242.         colorscheme gruvbox
  243.         filetype plugin indent on
  244.     " }}}
  245.  
  246.     " UI {{{
  247.         set modelines=1
  248.         set showcmd
  249.     " }}}
  250.  
  251.     " Splits {{{
  252.       " Always show line numbers, but only in current window.
  253.     " }}}
  254.  
  255.     " Misc {{{
  256.       if has('gui_running')
  257.         " Turn off scrollbars. (Default on macOS is "egmrL").
  258.         set guioptions-=L
  259.         set guioptions-=R
  260.         set guioptions-=b
  261.         set guioptions-=l
  262.         set guioptions-=r
  263.       endif
  264.    
  265.     " }}}
  266.  
  267.     " Variables {{{
  268.        set backspace=indent,eol,start
  269.        set smartindent
  270.        set autoindent
  271.        set ls=2         " display filename statusbar
  272.        set ignorecase           " ignore case when searching
  273.        set hlsearch             " highlight searches
  274.        set incsearch            " increamental search, find as you type word
  275.        set smartcase
  276.        set tabstop=4
  277.        set softtabstop=0
  278.        set shiftwidth=4
  279.        set expandtab
  280.        set nobackup
  281.        set noswapfile
  282.        set noundofile
  283.        set incsearch
  284.        set number
  285.        set relativenumber
  286.    
  287.     " }}}
  288.  
  289.     " File Find {{{
  290.         set path+=**
  291.         set wildmenu
  292.         set wildignore+=**/node_modules/**
  293.         set wildignore+=*/node_modules/*
  294.         set hidden
  295.     " }}}
  296.  
  297.     " VIMRC {{{
  298.         nnoremap <leader>ev :vsp $MYVIMRC<CR>
  299.     " }}}
  300.  
  301.     " File Reading {{{
  302.       " Read-only .doc through antiword
  303.       autocmd BufReadPre *.doc silent set ro
  304.       autocmd BufReadPost *.doc silent %!antiword "%"
  305.    
  306.       " Read-only odt/odp through odt2txt
  307.       autocmd BufReadPre *.odt,*.odp silent set ro
  308.       autocmd BufReadPost *.odt,*.odp silent %!odt2txt "%"
  309.    
  310.       " Read-only pdf through pdftotext
  311.       autocmd BufReadPre *.pdf silent set ro
  312.       autocmd BufReadPost *.pdf silent %!pdftotext -nopgbrk -layout -q -eol unix "%" - | fmt -w78
  313.    
  314.       " Read-only rtf through unrtf
  315.       autocmd BufReadPre *.rtf silent set ro
  316.       autocmd BufReadPost *.rtf silent %!unrtf --text
  317.     " }}}
  318.  
  319.     " Optimizations {{{
  320.       set nofoldenable
  321.       set synmaxcol=256
  322.       set foldmethod=manual
  323.       set nohlsearch
  324.       set regexpengine=1
  325.       set lazyredraw
  326.       set ttyfast
  327.     " }}}
  328.     " Source vim after every write
  329.     autocmd vimrc BufWritePost $MYVIMRC source $MYVIMRC
  330.     " vim:foldmethod=marker:foldlevel=0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement