Skip to content

Commit

Permalink
Add vim-sensible defaults by default
Browse files Browse the repository at this point in the history
  • Loading branch information
sheerun committed Oct 19, 2020
1 parent c3e8250 commit 233a817
Showing 1 changed file with 128 additions and 0 deletions.
128 changes: 128 additions & 0 deletions plugin/polyglot.vim
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,131 @@ endif
if has('syntax') && !exists('g:syntax_on')
syntax enable
endif

" No need to duplicate work
if exists('g:loaded_sensible')
finish
endif

" Code taken from https://github.com/tpope/vim-sensible
" and (mostly comments) from https://github.com/sheerun/vimrc
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sensible')
" Autoindent when starting new line, or using `o` or `O`.
set autoindent

" Allow backspace in insert mode.
set backspace=indent,eol,start

" Don't scan included files. The .tags file is more performant.
set complete-=i

" Use 'shiftwidth' when using `<Tab>` in front of a line.
" By default it's used only for shift commands (`<`, `>`).
set smarttab

" Disable octal format for number processing.
set nrformats-=octal

" Allow for mappings including `Esc`, while preserving
" zero timeout after pressing it manually.
" (only vim needs a fix for this)
if !has('nvim') && &ttimeoutlen == -1
set ttimeout
set ttimeoutlen=100
endif

" Enable highlighted case-insensitive incremential search.
set incsearch

" Use <C-L> to clear the highlighting of :set hlsearch.
if maparg('<C-L>', 'n') ==# ''
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
endif

" Always show window statuses, even if there's only one.
set laststatus=2

" Show the line and column number of the cursor position.
set ruler

" Autocomplete commands using nice menu in place of window status.
" Enable `Ctrl-N` and `Ctrl-P` to scroll through matches.
set wildmenu

" Keep 5 columns next to the cursor when scrolling horizontally.
if !&scrolloff
set scrolloff=1
endif
if !&sidescrolloff
set sidescrolloff=5
endif

" When 'wrap' is on, display last line even if it doesn't fit.
set display+=lastline

" Force utf-8 encoding
set encoding=utf-8

" Set default whitespace characters when using `:set list`
if &listchars ==# 'eol:$'
set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
endif

" Delete comment character when joining commented lines
if v:version > 703 || v:version == 703 && has("patch541")
set formatoptions+=j
endif

" Search upwards for tags file instead only locally
if has('path_extra')
setglobal tags-=./tags tags-=./tags; tags^=./tags;
endif

" Fix issues with fish shell
" https://github.com/tpope/vim-sensible/issues/50
if &shell =~# 'fish$' && (v:version < 704 || v:version == 704 && !has('patch276'))
set shell=/usr/bin/env\ bash
endif

" Reload unchanged files automatically.
set autoread

" Increase history size to 1000 items.
if &history < 1000
set history=1000
endif

" Allow for up to 50 opened tabs on Vim start.
if &tabpagemax < 50
set tabpagemax=50
endif

" Always save upper case variables to viminfo file.
if !empty(&viminfo)
set viminfo^=!
endif

" Don't save options in sessions and views
set sessionoptions-=options
set viewoptions-=options

" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^Eterm'
set t_Co=16
endif

" Load matchit.vim, but only if the user hasn't installed a newer version.
if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
runtime! macros/matchit.vim
endif

" `Ctrl-U` in insert mode deletes a lot. Use `Ctrl-G` u to first break undo,
" so that you can undo `Ctrl-U` without undoing what you typed before it.
if empty(mapcheck('<C-U>', 'i'))
inoremap <C-U> <C-G>u<C-U>
endif

if empty(mapcheck('<C-W>', 'i'))
inoremap <C-W> <C-G>u<C-W>
endif
endif

4 comments on commit 233a817

@ipod825
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't appreciate putting sensible settings in this plugin. When a user can't figure out why his/her own setting in the vimrc doesn't work, the only way he/she could figure out the problem is by disabling each plugin and identify that it's this plugin overwriting the setting. tpope/vim-sensible explicitly tells you that he's changing your settings, while you just mention this vaguely in the README in one sentence. And you never know what side effect can happen if you change users' settings. In fact, this commit breaks vim-netranger such that I need to add a new patch to fix it. It's very time-consuming to identify plugin conflict like this and I guess the best way is to leave user's global settings alone unless they know very clearly that this plugins is changing their settings.

@sheerun
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you, I'll leave only polyglot related things

@sheerun
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ipod825 @gwarf Could you look at 1d7f0e4 ? Anything else to remove?

@jrudess
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to see "set incsearch" removed. I always use "set noincsearch" in my .vimrc, and polyglot is overriding that now.

Please sign in to comment.