call plug#begin('~/.config/nvim/autoload/plugged') Plug 'junegunn/vim-easy-align' Plug 'dense-analysis/ale' Plug 'tpope/vim-rails' Plug 'vim-ruby/vim-ruby' Plug 'hashivim/vim-terraform' Plug 'cespare/vim-toml' Plug 'ntpeters/vim-better-whitespace' Plug 'pearofducks/ansible-vim' Plug 'itchyny/vim-gitbranch' Plug 'rust-lang/rust.vim' Plug 'airblade/vim-gitgutter' Plug 'elixir-editors/vim-elixir' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'https://tpope.io/vim/fugitive.git' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'kyazdani42/nvim-web-devicons' Plug 'kyazdani42/nvim-tree.lua' Plug 'svermeulen/vimpeccable' call plug#end() set nocompatible set history=1000 set title set encoding=utf-8 set scrolloff=3 set ttyfast set laststatus=2 set ff=unix set number set tabstop=2 set shiftwidth=2 set softtabstop=2 set nojoinspaces set expandtab set listchars=tab:>-,trail:- set list set noshowmode set hlsearch set incsearch set termguicolors set visualbell set noerrorbells set whichwrap=<,>,[,],b, set background=dark set backspace=indent,eol,start set number set autoread " set mouse=a set nobackup set nowb set noswapfile syntax on let mapleader = " " syntax on filetype on filetype plugin on filetype plugin indent on autocmd FileType make set noexpandtab shiftwidth=8 softtabstop=0 autocmd FileType rust set shiftwidth=4 softtabstop=4 tabstop=4 autocmd FileType terraform set expandtab let g:rustfmt_autosave = 1 autocmd FileType html set shiftwidth=4 softtabstop=4 tabstop=4 autocmd FileType javascript set shiftwidth=4 softtabstop=4 tabstop=4 autocmd FileType htmldjango set shiftwidth=4 softtabstop=4 tabstop=4 autocmd BufNewFile,BufRead *.tera set syntax=django " Center screen when scrolling search results nmap n nzz nmap N Nzz let g:airline_powerline_fonts=1 let g:airline_theme='base16_eighties' let g:airline#extensions#tabline#enabled = 1 noremap :bp noremap :bn set pastetoggle= " highlight trailing whitespace highlight ExtraWhitespace ctermbg=red guibg=red match ExtraWhitespace /\s\+$/ autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@(EasyAlign) " Start interactive EasyAlign for a motion/text object (e.g. gaip) nmap ga (EasyAlign) nnoremap 1 :source ~/.config/nvim/init.vim \| :PlugInstall map s :StripWhitespace nnoremap g :Rg nnoremap l :Buffers nnoremap :call SetNewPassword() function! SetNewPassword() let cur_word = expand('') let cmd = 'pwgen ' . strlen(cur_word) . ' 1' let new_password = system(cmd)[:-2] " Replace current word with a new random password of the same length call setline(line('.'), substitute(getline('.'), cur_word, new_password, "")) endfunction " Relative numbering function! NumberToggle() if(&relativenumber == 1) set nornu set number else set rnu endif endfunc " Toggle between normal and relative numbering. noremap :call NumberToggle() " File Browser nnoremap :NvimTreeToggle nnoremap r :NvimTreeRefresh nnoremap n :NvimTreeFindFile let g:nvim_tree_auto_close = 1 " let g:nvim_tree_quit_on_open = 1 let g:nvim_tree_git_hl = 1