Created
December 27, 2018 00:12
-
-
Save williamboman/d9c4d2c8fedae3b6c9ba302b03150379 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let mapleader="," | |
"============================================================ | |
" Plugins | |
"============================================================ | |
" | |
""" prepare vundle | |
set nocompatible | |
filetype off | |
set rtp+=~/.vim/bundle/Vundle.vim | |
set rtp+=~/.fzf | |
""" | |
call vundle#begin() | |
Plugin 'prettier/vim-prettier' | |
Plugin 'Shougo/deoplete.nvim' | |
Plugin 'isRuslan/vim-es6' | |
Plugin 'sheerun/vim-polyglot' | |
Plugin 'mhartington/nvim-typescript' | |
Plugin 'styled-components/vim-styled-components' | |
Plugin 'vim-scripts/SyntaxComplete' | |
Plugin 'vim-scripts/CountJump' | |
Plugin 'vim-scripts/ConflictMotions' | |
Plugin 'vim-scripts/ingo-library' | |
Plugin 'haya14busa/incsearch.vim' | |
Plugin 'easymotion/vim-easymotion' | |
Plugin 'editorconfig/editorconfig-vim' | |
Plugin 'python-mode/python-mode' | |
Plugin 'junegunn/vim-peekaboo' | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'Xuyuanp/nerdtree-git-plugin' | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'chrisbra/Colorizer' | |
Plugin 'itchyny/lightline.vim' | |
Plugin 'ludovicchabant/vim-gutentags' | |
Plugin 'junegunn/fzf.vim' | |
Plugin 'tpope/vim-repeat' | |
Plugin 'tpope/vim-fugitive' | |
Plugin 'tpope/vim-sleuth' | |
Plugin 'tpope/vim-commentary' | |
Plugin 'tpope/vim-surround' | |
Plugin 'williamboman/falcon' | |
Plugin 'Galooshi/vim-import-js' | |
Plugin 'yardnsm/vim-import-cost' | |
Plugin 'ryanoasis/vim-devicons' | |
" Plugin 'flowtype/vim-flow' | |
" Plugin 'posva/vim-vue' | |
" Plugin 'jpalardy/vim-slime' | |
call vundle#end() | |
"============================================================ | |
" mhartington/nvim-typescript | |
"============================================================ | |
let g:nvim_typescript#javascript_support = 1 | |
"============================================================ | |
" prettier/vim-prettier | |
"============================================================ | |
let g:prettier#autoformat = 0 | |
let g:prettier#config#print_width = 100 | |
let g:prettier#config#tab_width = 4 | |
let g:prettier#config#semi = 'false' | |
let g:prettier#config#single_quote = 'false' | |
let g:prettier#config#bracket_spacing = 'true' | |
"============================================================ | |
" vim-scripts/SyntaxComplete | |
"============================================================ | |
if has("autocmd") && exists("+omnifunc") | |
autocmd Filetype * | |
\ if &omnifunc == "" | | |
\ setlocal omnifunc=syntaxcomplete#Complete | | |
\ endif | |
endif | |
"============================================================ | |
" junegunn/fzf.vim | |
"============================================================ | |
let g:fzf_history_dir = '~/.local/share/fzf-history' | |
let g:fzf_commits_log_options = "--color=always --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short" | |
"============================================================ | |
" ludovicchabant/vim-gutentags | |
"============================================================ | |
let g:gutentags_ctags_tagfile = '.git/tags' | |
let g:gutentags_ctags_extra_args = ['--tag-relative'] " ensure these args are in sync with .git_template/hooks/ctags | |
"============================================================ | |
" haya14busa/incsearch.vim | |
"============================================================ | |
let g:incsearch#auto_nohlsearch = 1 | |
"============================================================ | |
" easymotion/vim-easymotion | |
"============================================================ | |
let g:EasyMotion_do_mapping = 0 | |
"============================================================ | |
" python-mode/python-mode | |
"============================================================ | |
let g:pymode_folding = 0 | |
let g:pymode_lint = 0 | |
let g:pymode_options_max_line_length = 9001 | |
"============================================================ | |
" junegunn/vim-peekaboo | |
"============================================================ | |
let g:peekaboo_compact = 1 | |
"============================================================ | |
" airblade/vim-gitgutter | |
"============================================================ | |
let g:gitgutter_map_keys = 0 | |
"============================================================ | |
" chrisbra/Colorizer | |
"============================================================ | |
let g:colorizer_auto_filetype='css,html,js,jsx,ts,tsx,scss,.vim' | |
"============================================================ | |
" williamboman/falcon | |
let g:falcon_lightline = 1 | |
"============================================================ | |
"============================================================ | |
" itchyny/lightline.vim | |
"============================================================ | |
function! LightlineFiletype() | |
return winwidth(0) > 70 ? (strlen(&filetype) ? WebDevIconsGetFileTypeSymbol() : 'no ft') : '' | |
endfunction | |
function! LightlineFormat() | |
return winwidth(0) > 70 ? (&fileformat . ' ' . WebDevIconsGetFileFormatSymbol()) : '' | |
endfunction | |
let g:lightline = { | |
\ 'colorscheme': 'wombat', | |
\ 'active': { | |
\ 'left': [ | |
\ ['mode', 'paste'], ['readonly', 'relativepath', 'modified'] | |
\ ], | |
\ 'right': [ | |
\ ['lineinfo'], ['percent'], ['fileformat', 'fileencoding', 'filetype'], | |
\ ['gitbranch'] | |
\ ] | |
\ }, | |
\ 'component_function': { | |
\ 'gitbranch': 'fugitive#head', | |
\ 'filetype': 'LightlineFiletype', | |
\ 'fileformat': 'LightlineFormat', | |
\ } | |
\ } | |
"============================================================ | |
" scrooloose/nerdtree | |
"============================================================ | |
let NERDTreeShowHidden=1 | |
"============================================================ | |
" Shougo/deoplete.nvim | |
"============================================================ | |
let g:deoplete#enable_at_startup = 1 | |
"============================================================ | |
" Settings | |
"============================================================ | |
set foldmethod=manual | |
set nofoldenable | |
set hlsearch | |
colorscheme falcon | |
if !has('gui_running') | |
set t_Co=256 | |
endif | |
" https://medium.com/@dubistkomisch/how-to-actually-get-italics-and-true-colour-to-work-in-iterm-tmux-vim-9ebe55ebc2be | |
let &t_8f="\<Esc>[38;2;%lu;%lu;%lum" | |
let &t_8b="\<Esc>[48;2;%lu;%lu;%lum" | |
set termguicolors | |
" lightline takes care of showing mode | |
set noshowmode | |
" Always show status line | |
set laststatus=2 | |
filetype plugin indent on | |
" ignore directories | |
set wildignore=*/node_modules,*/bower_components | |
" Use the OS clipboard by default (on versions compiled with `+clipboard`) | |
set clipboard=unnamed | |
" Enhance command-line completion | |
set wildmenu | |
" Make sure backspace works in insert mode | |
set backspace=indent,eol,start | |
" Optimize for fast terminal connections | |
set ttyfast | |
" Add the g flag to search/replace by default | |
set gdefault | |
" Use UTF-8 without BOM | |
set encoding=utf-8 nobomb | |
" Centralize backups, swapfiles and undo history | |
set backupdir=~/.vim/backups | |
set directory=~/.vim/swaps | |
if exists("&undodir") | |
set undodir=~/.vim/undo | |
endif | |
" Don’t create backups when editing files in certain directories | |
set backupskip=/tmp/*,/private/tmp/* | |
" Enable line numbers | |
set number | |
" Enable syntax highlighting | |
syntax on | |
" Highlight current line | |
set cursorline | |
" Make tabs as wide as two spaces | |
set tabstop=2 | |
" Ignore case of searches… | |
set ignorecase | |
" … unless the search includes a capital letter | |
set smartcase | |
" Enable mouse in all modes | |
set mouse=a | |
" Disable error bells | |
set noerrorbells | |
" Don’t reset cursor to start of line when moving around. | |
set nostartofline | |
" Show the cursor position | |
set ruler | |
" Don’t show the intro message when starting Vim | |
set shortmess=atIc | |
" Show the filename in the window titlebar | |
set title | |
" Show the (partial) command as it’s being typed | |
set showcmd | |
" Start scrolling three lines before the horizontal window border | |
set scrolloff=3 | |
set diffopt=filler,vertical | |
" More natural split openings | |
set splitbelow | |
set splitright | |
" Automatic commands | |
if has("autocmd") | |
" Treat .md files as Markdown | |
autocmd BufNewFile,BufRead *.md setlocal filetype=markdown | |
" Enable NERDTree | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif | |
" highlight trailing whitespace | |
highlight ExtraneousWhitespace ctermbg=red | |
match ExtraneousWhitespace /\(\s\+$\| \)/ | |
autocmd BufWinEnter,CursorMovedI * highlight ExtraneousWhitespace ctermbg=red | |
autocmd FileType typescript nmap <buffer> <Leader>t :TSType<CR> | |
autocmd FileType typescript nmap <buffer> <Leader>d :TSDef<CR> | |
autocmd FileType typescript nmap <buffer> <Leader>D :TSDefPreview<CR> | |
autocmd FileType typescript nmap <buffer> <C-d> :bprevious<CR> | |
autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue PrettierAsync | |
endif | |
"============================================================ | |
" Mappings | |
"============================================================ | |
" C-r to interactively replace selection | |
vnoremap <C-r> "hy:%s/<C-r>h//gc<left><left><left> | |
"============================================================ | |
" scrooloose/nerdtree | |
"============================================================ | |
map <Leader>a :NERDTreeFind<CR> | |
map <C-n> :NERDTreeToggle<CR> | |
"============================================================ | |
" junegunn/fzf.vim | |
"============================================================ | |
nnoremap <C-l> :Tags<CR> | |
nnoremap <C-p> :GFiles<CR> | |
"============================================================ | |
" easymotion/vim-easymotion | |
"============================================================ | |
map <Leader>f <Plug>(easymotion-bd-f) | |
nmap <Leader>f <Plug>(easymotion-overwin-f) | |
nmap <Leader>s <Plug>(easymotion-overwin-f2) | |
map <Leader>L <Plug>(easymotion-bd-jk) | |
nmap <Leader>L <Plug>(easymotion-overwin-line) | |
map <Leader>w <Plug>(easymotion-bd-w) | |
nmap <Leader>w <Plug>(easymotion-overwin-w) | |
map <Leader>l <Plug>(easymotion-lineforward) | |
map <Leader>h <Plug>(easymotion-linebackward) | |
"============================================================ | |
" haya14busa/incsearch.vim | |
"============================================================ | |
map / <Plug>(incsearch-forward) | |
map ? <Plug>(incsearch-backward) | |
map g/ <Plug>(incsearch-stay) | |
map n <Plug>(incsearch-nohl-n) | |
map N <Plug>(incsearch-nohl-N) | |
map * <Plug>(incsearch-nohl-*) | |
map # <Plug>(incsearch-nohl-#) | |
map g* <Plug>(incsearch-nohl-g*) | |
map g# <Plug>(incsearch-nohl-g#) | |
"============================================================ | |
" ctags | |
"============================================================ | |
nnoremap <Leader>d <C-]> | |
nnoremap <Leader>D :vsp <CR>:exec("tag ".expand("<cword>"))<CR> " open definition in vertical split | |
nnoremap <C-d> <C-T> | |
"============================================================ | |
" Shougo/deoplete.nvim | |
"============================================================ | |
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>" | |
inoremap <expr><s-tab> pumvisible() ? "\<c-p>" : "\<s-tab>" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment