Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """""""""""""""""""""""""""""""
- " Reload .vimrc while editing
- " :so %
- """""""""""""""""""""""""""""""
- command! Vimrc :e ~/.vimrc
- set nocompatible " be iMproved, required
- filetype off " required
- """""""""""""""""""""""""""""""
- " cosmetic changes
- """""""""""""""""""""""""""""""
- syntax on
- set nospell
- set numberwidth=5
- set nocursorcolumn
- set nocursorline
- set encoding=utf-8
- set title
- set shortmess=atI " don't sho intro messages
- set report=0 " tell us about changes
- set backspace=indent,eol,start " allow backspacing over everything in insert mode
- set tabstop=2
- set shiftwidth=2
- set softtabstop=2
- set expandtab
- set ruler
- set nowrap
- set list
- set listchars=tab:\ ·,trail:·
- set lazyredraw
- set matchtime=3
- set showbreak=↪
- set splitbelow
- set splitright
- " set fillchars=vert:\ " empty is nicer on our term
- set autowrite
- set shiftround
- set autoread
- set linebreak
- set hlsearch
- set incsearch
- set ignorecase
- set smartcase
- set laststatus=2"
- " set clipboard=unnamedplus " Share your clipboard with system
- set clipboard=unnamed " Share your clipboard with system
- set mouse=a " Make mouse working!
- set modeline
- set modelines=10
- set shell=/bin/sh
- set wildmode=list:longest,list:full " Tab completion
- set wildignore+=*.o,*.out,*.obj,.git,*.rbc,*.class,.svn,*.gem
- set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz
- set wildignore+=*/vendor/gems/*,*/vendor/cache/*,*/.bundle/*,*/.sass-cache/*
- set wildignore+=*.swp,*~,._*
- set showcmd " Show (partial) command in the status line"
- set showmode
- set updatetime=100
- set guioptions-=m "remove menu bar
- set guioptions-=T "remove toolbar
- set guioptions-=r "remove right-hand scroll bar
- set guioptions-=L "remove left-hand scroll bar
- """""""""""""""""""""""""""""""
- " Plugins (using vim-plug)
- """""""""""""""""""""""""""""""
- if empty(glob('~/.vim/autoload/plug.vim'))
- silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
- \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
- endif
- call plug#begin('~/.local/share/nvim/plugged')
- Plug 'chriskempson/base16-vim'
- Plug 'vim-airline/vim-airline'
- Plug 'vim-airline/vim-airline-themes'
- Plug 'gruvbox-community/gruvbox/'
- Plug 'dracula/vim', { 'as': 'dracula' }
- Plug 'wincent/terminus'
- Plug 'scrooloose/nerdtree'
- " Plug 'ctrlpvim/ctrlp.vim'
- " fzf integration
- Plug '/usr/local/opt/fzf'
- Plug 'junegunn/fzf.vim'
- Plug 'jistr/vim-nerdtree-tabs'
- Plug 'w0rp/ale'
- Plug 'nanotech/jellybeans.vim'
- " Autocomplete
- if has('nvim')
- Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
- else
- Plug 'Shougo/deoplete.nvim'
- Plug 'roxma/nvim-yarp'
- Plug 'roxma/vim-hug-neovim-rpc'
- endif
- Plug 'ervandew/supertab' " Trying supertab for Autocomplete
- " Helpful functionality
- " Plug 'Yggdroot/indentLine' " Better visuals for indents
- Plug 'jiangmiao/auto-pairs' " Auto pair (), {}, [], etc..
- Plug 'godlygeek/tabular' " Makes alligned tables out of structured text
- Plug 'blueyed/vim-diminactive' " Focused window easier to spot
- Plug 'tpope/vim-surround' " Necessary
- Plug 'tpope/vim-commentary' " Necessary
- Plug 'jeffkreeftmeijer/vim-numbertoggle' " Toggle relative line numbers
- Plug 'junegunn/goyo.vim' " Distraction free writing
- " Plug 'terryma/vim-multiple-cursors' " Display multiple cursors
- Plug 'airblade/vim-gitgutter' " Display git line status in left gutter
- " Language specific
- " Python
- Plug 'hdima/python-syntax'
- Plug 'davidhalter/jedi-vim'
- Plug 'zchee/deoplete-jedi'
- " Plug 'tmhedberg/SimpylFold'
- " Plug 'plasticboy/vim-markdown'
- " SQL
- Plug 'vim-scripts/SQLComplete.vim'
- call plug#end()
- """""""""""""""""""""""""""""""
- " General Settings
- """""""""""""""""""""""""""""""
- " Correct Neovim escape handling
- if has("nvim")
- au TermOpen * tnoremap <Esc> <c-\><c-n>
- " au FileType fzf tunmap <Esc>
- endif
- " Colors & C.
- let g:airline_theme = 'dark'
- let base16colorspace=256 " Access colors present in 256 colorspace
- syntax enable
- set background=dark
- if has("gui_running")
- colorscheme jellybeans
- else
- colorscheme gruvbox
- endif
- "enable deoplete
- let g:deoplete#enable_at_startup = 1
- " This allows buffers to be hidden if you've modified a buffer.
- " This is almost a must if you wish to use buffers in this way.
- set hidden
- " Change mapleader
- let mapleader="\<space>"
- " To open a new empty buffer
- " This replaces :tabnew which I used to bind to this mapping
- nmap <leader>T :enew<cr>
- " Move to the next buffer
- map <leader>l :bnext<CR>
- " Move to the previous buffer
- map <leader>h :bprevious<CR>
- " Delete buffer without closing window
- nmap <leader>q :bprevious<CR>:bdelete #<CR>
- " Airline stuff
- " Enable the list of buffers
- let g:airline#extensions#tabline#enabled = 1
- " Show just the filename
- let g:airline#extensions#tabline#fnamemod = ':t'
- " Integrate with ALE Linter
- let g:airline#extensions#ale#enabled = 1
- " ESC exits the terminal mode
- " tnoremap <Esc> <C-\><C-n>
- " terminal
- " set shell=/bin/zsh
- let g:jedi#use_splits_not_buffers = "left"
- " disable autocompletion, cause we use deoplete for completion
- let g:jedi#completions_enabled = 0
- " open the go-to function in split, not another buffer
- let g:jedi#use_splits_not_buffers = "right"
- " Stop fucking netrw
- let g:netrw_silent = 1
- let g:netrw_quiet = 1
- let g:loaded_netrw = 1
- " NERDTree configuration
- let NERDTreeQuitOnOpen = 0 " don't collapse NERDTree when a file is opened
- let NERDTreeMinimalUI = 1
- let NERDTreeDirArrows = 0
- let NERDTreeChDirMode = 0
- let NERDTreeIgnore = ['\.pyc$', '\.rbc$', '\~$']
- let NERDTreeHijackNetrw = 0
- let g:nerdtree_tabs_startup_cd = 0
- let g:nerdtree_tabs_open_on_console_startup=0
- let g:nerdtree_tabs_open_on_gui_startup = 0
- map <leader>t :NERDTreeTabsToggle<CR>
- " Autocomplete change selection bindings
- " let g:SuperTabContextDefaultCompletionType = "<C-j>"
- let g:SuperTabDefaultCompletionType = "<C-n>"
- let g:SuperTabContextDefaultCompletionType = "<C-n>"
- inoremap <expr> <C-j> pumvisible() ? "\<C-n>" : "\<C-j>"
- inoremap <expr> <C-k> pumvisible() ? "\<C-p>" : "\<C-k>"
- " ALE Linting settings
- let g:ale_lint_on_enter = 0
- let g:ale_lint_on_text_changed = 'never'
- let g:ale_echo_msg_error_str = 'E'
- let g:ale_echo_msg_warning_str = 'W'
- let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
- let g:ale_linters = {'python': ['flake8']}
- " Relative number settings
- " In normal mode, use leader-n or C-n toggle
- set number relativenumber
- function! NumberToggle()
- if(&relativenumber == 1)
- set norelativenumber
- else
- set relativenumber
- endif
- endfunc
- nnoremap <C-n> :call NumberToggle()<cr>
- nnoremap <leader>n :call NumberToggle()<cr>
- " Python specific indenting
- " Leader + b for breakpoints
- au FileType python map <silent> <leader>b oimport pdb; pdb.set_trace()<esc>
- au FileType python map <silent> <leader>B Oimport pdb; pdb.set_trace()<esc>
- " \ set tabstop=4 |
- " \ set softtabstop=4 |
- " \ set shiftwidth=4 |
- " \ set textwidth=79 |
- " \ set expandtab |
- " \ set autoindent |
- " \ set fileformat=unix
- " FZF shortcuts
- nmap <silent> <C-p> :Files<CR>
- nmap <silent> <C-b> :Buffers<CR>
- nmap <silent> <C-g> :Rg<CR>
- " command! -bang -nargs=* Rg call fzf#vim#grep({'options': '--delimiter : --nth 4..'}, 'up:60%')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement