92 Commits
v1.0 ... master

Author SHA1 Message Date
Victor Schneuwly
0ce2d843d6 Fix MaySet detection for Lua following Neovim update (#195)
With version v0.10.0 of Neovim, the `:verbose` output added
"(run Nvim with -V1 for more details)" to the previous message,
which was simply "Last set from Lua".
2024-06-08 12:27:52 -04:00
Übertreiber
3e878abfd6 Fix MaySet detection for Neovim init.lua users
Neovim users since version 0.5 can write their global configuration in
an ~/.config/nvim/init.lua file instead of ~/.config/nvim/init.vim.

Unfortunately, `:verbose` support for Lua is still lacking even in
Neovim 0.8: instead of reporting the file and line that last changed an
option, it will simply say "last set in Lua" if that change happened in
a Lua script.

The regex used in MaySet does not recognize this case and so MaySet
falsely assumes that all Lua config comes from the system and not from
the user.

I've gone for a somewhat hacky solution and simply added the alternative
`/ Lua$/` to the regex. This assumes that the system-wide vimrc file is
always written in VimScript – which is true to this day according to the
[Neovim documentation][1].

[1]: https://github.com/neovim/neovim/blob/ce0fddf5/runtime/doc/starting.txt#L468-L472

Co-authored-by: Nico Madysa <nico.madysa@cern.ch>
2023-03-29 09:31:54 -04:00
Tim Pope
624c7549a5 sensible.vim 2.0
* Try to avoid overriding options set in user vimrc.
* Provide :DiffOrig, as found in the example at `:help :DiffOrig`.
* Enable Vim's included :Man command.
* Enable g:is_posix, for better highlighting of sh filetype.
* Break undo with <C-G>u before delete word with <C-W>.
* Add `set viewoptions-=options`.
* Add `set display+=truncate`.
* Add `set nolangremap`.
* Add `set nocompatible`.
* Replace `set sidescrolloff=5` with `set sidescroll=1 sidescrolloff=2`.
* Remove `set autoindent`.
* Remove conditional `set encoding=utf-8`.
* Don't run `filetype plugin indent on` a second time.
2023-03-17 23:56:54 -04:00
Tim Pope
5693bb650a Set nocompatible 2023-03-08 17:07:35 -05:00
Tim Pope
a7eea09ba6 Favor execute() over :redir, for performance
Resolves: https://github.com/tpope/vim-sensible/issues/186
2023-02-23 07:31:11 -05:00
Tim Pope
16283468be Fix startup error on nvim 2023-01-05 21:41:44 -05:00
Tim Pope
947f613a09 Avoid moving screen cursor during Vim startup
Search for "did_show" in Vim's do_set() to see why this works.

Resolves: https://github.com/tpope/vim-sensible/issues/182
2023-01-05 18:17:59 -05:00
Tim Pope
8e274c23e4 Favor execute() over :redir to minimize side effects
If this is still unacceptable for users of ancient versions of Vim, we
could further change the else clause to `return 1`.

Resolves: https://github.com/tpope/vim-sensible/issues/182
2023-01-03 11:52:22 -05:00
Tim Pope
eb59f45508 Provide g:is_posix default
Resolves: https://github.com/tpope/vim-sensible/issues/140
Resolves: https://github.com/tpope/vim-sensible/pull/127
2022-12-30 01:01:40 -05:00
Tim Pope
dad453eb1b Adjust 'sidescroll' and 'sidescrolloff'
Resolves: https://github.com/tpope/vim-sensible/pull/124
References: https://github.com/tpope/vim-sensible/issues/129
2022-12-30 01:01:22 -05:00
Tim Pope
cdb380156f Don't override user configured value of options
While `:runtime plugin/sensible.vim` does allow for effectively
superseding any option set by sensible.vim, it has never sat right with
me that this was necessary.  This change attempt to use the output of
`:verbose set` to determine if an option should be overridden or not.

Excluded from this change is options we alter, rather than override,
since a user could conceivably have their own alterations that do not
conflict with sensible.vim.  If any of these alterations were to receive
pushback, I would reconsider this decision.

References: https://github.com/tpope/vim-sensible/issues/129
References: https://github.com/tpope/vim-sensible/issues/88
2022-12-29 00:04:56 -05:00
Tim Pope
c597927613 Add a few more comments 2022-12-29 00:02:37 -05:00
Tim Pope
0b53989c02 Provide :DiffOrig
This seems like a weirdly specific thing to provide in a set of
defaults, but since defaults.vim provides it I guess we can too.

References: https://github.com/tpope/vim-sensible/issues/86
2022-12-27 23:42:10 -05:00
Tim Pope
d2613eeaa1 Add "display" to 'truncate' when available
This matches what defaults.vim does.  We could omit "lastline" in this
case, but it doesn't hurt anything, and keeping it out of an if
statement allows it to be set without +eval.
2022-12-27 22:55:33 -05:00
Tim Pope
d4b12eaf84 Don't override 'tags' without "./tags"
References: https://github.com/tpope/vim-sensible/issues/94
2022-12-27 07:59:51 -05:00
Tim Pope
1415c5b66d Move fish 'shell' override down with other reparative behaviors 2022-12-27 07:59:51 -05:00
Tim Pope
c48736b2c3 Enable Vim's built-in :Man command
Also move the other :runtime to the bottom, because that feels like it
should be the last thing we do.

Resolves: https://github.com/tpope/vim-sensible/issues/120
2022-12-26 02:08:44 -05:00
Tim Pope
d5617d0279 Disable 'langremap'
Resolves: https://github.com/tpope/vim-sensible/pull/93
2022-12-26 02:08:44 -05:00
Tim Pope
489e9bf885 Don't set 'encoding'
Vim 8.2.2912 changes the default on Windows, eliminating the primary
issue this was intended to fix.  Changing 'encoding' can prevent
previously defined maps from working, so let's rip this out sooner
rather than later.

References: https://github.com/tpope/vim-sensible/issues/69
2022-12-26 02:08:40 -05:00
Tim Pope
c28d1ad848 Don't override backspace=nostop 2022-12-26 01:30:34 -05:00
Tim Pope
c6fe4c33b8 Remove modeline 2022-12-26 01:30:15 -05:00
Tim Pope
1be4e4e540 Never run "filetype plugin indent on" a second time
Resolves: https://github.com/tpope/vim-sensible/issues/126
2022-12-03 00:26:42 -05:00
Tim Pope
8985da7669 Don't set autoindent
It's only very rarely that I want this off, but since file type plugins
tend to turn it on when it's desirable, the argument for forcing it
globally is pretty weak.
2022-08-25 21:32:43 -04:00
Tim Pope
226203be17 Don't disable global statusline
References: https://github.com/tpope/vim-sensible/issues/102
2022-04-11 13:01:50 -04:00
Tim Pope
2d9f34c09f Revert "Lower 'synmaxcol'"
This reverts commit c176d13789.
2019-11-24 15:45:22 -05:00
Tim Pope
bb75c2ec73 Add sponsor button 2019-11-12 19:29:02 -05:00
Tim Pope
4a7159a300 Linux terminal supports 16 colors now 2019-10-17 20:59:16 -04:00
Tim Pope
5dc6eb2d80 Remove cargo culted helptags invocation
Closes https://github.com/tpope/vim-sensible/issues/165
2019-08-31 23:29:58 -04:00
Enno
b9febff7aa Make :mkview not save options
References https://github.com/tpope/vim-sensible/issues/163#issuecomment
2019-08-22 18:12:55 -05:00
Tim Pope
c176d13789 Lower 'synmaxcol'
Closes https://github.com/tpope/vim-sensible/issues/142
2019-08-07 00:07:00 -04:00
Tim Pope
67fe033b2b Break undo before delete word
Closes https://github.com/tpope/vim-sensible/issues/161
2019-07-28 21:39:56 -04:00
Ammar Alakkad
8db5a732ef Fix typo 2019-02-14 17:23:45 -05:00
Roberto V. Alfieri
7f46e82fc7 Take bash path from /usr/bin/env for non Linux environment 2018-10-27 18:43:43 -04:00
Tim Pope
679e53d615 Revert "Include local options in sessions"
This reverts commit c82c6d4978.
2018-09-17 11:37:21 -04:00
Tim Pope
340a5e1f32 Update installation instructions 2018-08-19 18:43:08 -04:00
Tim Pope
c82c6d4978 Include local options in sessions
Closes https://github.com/tpope/vim-sensible/issues/153
2018-07-16 15:58:53 -04:00
Tim Pope
2d60332fa5 sensible.vim 1.2
* Enable upwards tags file searching with `./tags;` in 'tags'.
* Enable joining commented lines with `formatoptions` j flag.
* Remove 'showcmd', 'shiftround', and 'fileformat' changes.
* Allow fish as 'shell' for compatible Vim versions.
* Don't override user specified 'ttimeoutlen'.
* Don't force `t_Co` to 16 for Eterm.
* Add :diffupdate to CTRL-L map.
2018-01-22 00:47:03 -05:00
blurrcat
49ee364222 Fix if statement 2017-05-09 23:02:50 -04:00
Tim Pope
d205637361 Don't override ttimeoutlen 2017-05-09 17:59:24 -04:00
Tim Pope
b6033cb4d4 Work around deficiencies in nvim 2017-05-09 17:39:17 -04:00
Paulo Köch
e57222db3b Document 'autoread' in feature list (#136) 2017-04-02 00:20:42 -04:00
James McCoy
4b75359218 Preserve fish as 'shell' for Vim 7.4.276 or later (#128)
As of 7.4.276, Vim understands how to run commands in subshells when
'shell' is fish.  This fixes the most common problems with running
external commands from Vim.

Plugins may still need to accommodate for fish, but fixing the cognitive
dissonance of having the user's shell changed outweighs the benefit to
lazy plugin writers.
2016-09-05 21:40:29 -04:00
Tim Pope
9e91be7e0f Revert "Set lazyredraw"
This reverts commit 2fb074e841.
2016-03-18 14:25:42 -04:00
Brice Burgess
2fb074e841 Set lazyredraw 2016-02-09 13:47:33 -05:00
Andrew Schwartzmeyer
680a5c6932 Remove set showcmd
Closes https://github.com/tpope/vim-sensible/issues/49.
2015-12-26 13:47:14 -05:00
netei
8c4429c70c Remove set fileformats+=mac 2015-12-11 15:19:26 -05:00
Markus Teich
26f8783e08 Fix bug in C-L mapping
The <C-R> should be <C-R>=, otherwise an error occurs when pressing C-L:
E492: Not an editor command: nohlsearchas('diff')?'|diffupdate':''
2015-09-24 18:50:46 -04:00
Tim Pope
027b2390e1 Exempt Eterm from t_Co=16
Closes https://github.com/tpope/vim-sensible/issues/101.
2015-09-23 13:58:01 -04:00
Tim Pope
d0beb8ab42 Prevent duplicate entry in 'tags'
Closes #94.
2015-04-04 13:14:25 -04:00
Janko Marohnić
b30dcf387a Delete comment char when joining commented lines 2014-11-24 11:57:12 -05:00
Tim Pope
64aa12b07b Search upwards for tags file 2014-07-07 00:15:06 -04:00
Josh Triplett
d002540b6c Stop enabling shiftround; it breaks indent/outdent
The shiftround setting breaks many common cases of multi-line indent and
outdent for continuation lines. For example, suppose I have the
following code, in a buffer with 8-space indentation:

foo(x,
    y)

With the default settings, I can > those two lines, and end up with this:

        foo(x,
            y);

But with shiftround, I instead end up with:

        foo(x,
        y);

Thus, revert to the vim default of noshiftround.
2014-06-23 22:40:34 -04:00
Tim Pope
98a6555e4a sensible.vim 1.1
* Break undo after CTRL-U.
* Set shiftround.
* Set tabpagemax=50.
* Set nrformats-=octal.
* Set sessionoptions-=options.
* Set history=1000.
* Set ttimeoutlen=100.
* Set encoding=utf-8 in gvim.
* Override shell=fish to use a supported shell instead.
* Use ASCII only listchars.
* Drop fillchars.
* Drop smartcase.
* Drop autowrite.
* Drop showmatch.
* Drop Y mapping.
* Don't clobber scroll offsets.
* Don't override a blank viminfo.
* Don't force UNIX line endings on Windows.
* Stop setting temporary directories.
2014-04-24 18:55:13 -04:00
Ryan Dlugosz
38fea1c935 Remove unicode listchars to fix #57
As discussed in Issue #57, setting Unicode characters for
`listchars` is a problematic default because of the scrolling
performance impact incurred when one of the specified glyphs is missing
from the user's selected font.

An alternative approach would be to choose "safer" unicode characters
that are likely to exist in most fonts. Given that the purpose of
vim-sensible is to provide universal sane defaults it seems this would
be best left to the user's `.vimrc` or another plugin.
2014-04-02 03:33:20 -04:00
Tim Pope
f8acc5a067 Set sessionoptions-=options 2014-03-18 22:18:48 -04:00
Tim Pope
01854b14c7 Bump 'ttimeoutlen' to 100
Closes #72.
2014-02-23 10:35:17 -05:00
Christian Wellenbrock
ada47584c3 Don't set showmatch
Closes #16.
2014-01-30 22:50:49 -05:00
Tim Pope
92c7ee739b Remove Y from README 2013-08-03 00:20:14 -04:00
Tim Pope
e48a40534c Drop Y and && mappings
This is why we can't have nice things.

Closes #47.
2013-08-02 00:03:37 -04:00
Tim Pope
196fcfb728 Remove outdated reference to undo files 2013-08-02 00:01:26 -04:00
Tim Pope
fee5928dc8 Avoid problems with fish shell
References #50.
2013-06-23 13:22:56 -04:00
Tim Pope
2c57c5f4c5 Stop setting temporary directories
* Closes #50
2013-06-10 22:55:11 -04:00
Tim Pope
3ffe25ce1d Don't mess with netrw
I've decided this is outside the scope of things sensible.vim should
tweak.
2013-04-22 23:15:38 -04:00
Tim Pope
d39023bba7 De-emphasize custom 'undodir'
This is going away.  Make your plans now.
2013-04-09 00:25:47 -04:00
Tim Pope
530ea28e89 Provide more robust example of disabling 'undofile' 2013-03-26 23:28:24 -04:00
Tim Pope
4fb9519254 Hide dot files in netrw the way netrw does 2013-03-12 02:33:34 -04:00
Dan Grover
41499a5767 Set correct AppData dir for more Windows versions
Replace the hard-coded path with an environment variable supported by
all versions of Windows since XP.
2013-03-12 02:33:28 -04:00
Tim Pope
e7eda3bb86 Don't override a blank 'viminfo'
Closes #42.
2013-03-07 12:14:11 -05:00
Tim Pope
3d88620d61 Don't set autowrite
Closes #25.
2013-02-25 22:53:54 -05:00
Tim Pope
76d86fc6ed Set tabpagemax=50
Closes #40.
2013-02-23 12:10:22 -05:00
James Rowe
ee6eae42ed Honour $XDG_DATA_HOME for &directory setting
'~/.local/share' is only the fallback location for data files, see
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
2013-02-23 11:48:39 -05:00
Tim Pope
9ca7bed8ea Break undo after CTRL-U
Closes #28
2013-02-23 11:43:23 -05:00
Tim Pope
85b9b3b516 Remap & to include flags
Closes #30.
2013-02-21 18:53:59 -05:00
Tim Pope
228787e62a More formatting tweaks 2013-02-21 18:53:59 -05:00
Tim Pope
513386ecfe Show non-breaking spaces as dots 2013-02-15 20:39:11 -05:00
Tim Pope
d4d1491aa1 Force encoding in gvim
In practice, this is mainly a problem on Windows.
2013-02-15 20:37:15 -05:00
Timo Sand
5b0e1b4b9a Fix for not matching mac when setting directories
Closes #32.
2013-02-15 20:22:20 -05:00
Tim Pope
85112656a2 Fix README formatting 2013-02-14 20:10:53 -05:00
Tim Pope
e0a2ca148f Explain undo persistence in FAQ
Closes #34.
2013-02-07 23:04:54 -05:00
Tim Pope
8f2a48ae16 Don't clobber scroll offsets
Closes #26.
2013-01-29 13:06:44 -05:00
Tim Pope
7aa7dba2a2 Fix grammar error 2013-01-22 18:28:59 -05:00
Tim Pope
ea5d006613 Expand tildes in transient directories
Closes #23.
2013-01-21 14:18:39 -05:00
Tim Pope
a2cd959936 Fix transient directory options 2013-01-20 21:02:15 -05:00
Tim Pope
6c1ed9b043 Better (?) location for transient files
Closes #22.
2013-01-20 11:24:25 -05:00
Tim Pope
6083bf4a61 Drop smartcase
Closes #20.
2013-01-19 15:30:51 -05:00
Tim Pope
93f6d3434f Remove octal from nrformats
Closes #21.
2013-01-19 15:30:12 -05:00
Tim Pope
f7bdc45c03 Set history
Closes #19.
2013-01-17 20:54:06 -05:00
Tim Pope
77cb5aa5fb Remove infercase
Closes #17.  I'll battle ignorecase in a separate plugin.
2013-01-16 19:26:26 -05:00
Tim Pope
312fff5bd4 Drop 'fillchars'
Closes #15
2013-01-13 23:21:29 -05:00
Tim Pope
8e8937e76a Set shiftround
Confession: I only recently found this, but I've wanted it for years.
Nobody wants to shift from 11 to 3 spaces, right?
2013-01-12 00:35:53 -05:00
Tim Pope
b5689392fc Don't force UNIX line endings on Windows
Closes #14.
2013-01-11 13:43:48 -05:00
Tim Pope
88718d26fd Set infercase 2013-01-10 01:15:18 -05:00
3 changed files with 154 additions and 81 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: tpope
custom: ["https://www.paypal.me/vimpope"]

View File

@@ -15,12 +15,12 @@ set of defaults that (hopefully) everyone can agree on.
## Installation
If you don't have a preferred installation method, I recommend
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), and
then simply copy and paste:
Install using your favorite package manager, or use Vim's built-in package
support:
cd ~/.vim/bundle
git clone git://github.com/tpope/vim-sensible.git
mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone https://tpope.io/vim/sensible.git
## Features
@@ -31,10 +31,7 @@ mostly `:set` calls.) Here's a taste:
* `'incsearch'`: Start searching before pressing enter.
* `'listchars'`: Makes `:set list` (visible whitespace) prettier.
* `'scrolloff'`: Always show at least one line above/below the cursor.
* `'directory'`: Dump swap files under `~/.cache/vim/swap` (only if that
directory already exists). Also `'backupdir'` and `'undodir'`. Try
`mkdir -p ~/.cache/vim/{swap,backup,undo}`.
* `nmap Y y$`: Make `Y` behave like `C` and `D`.
* `'autoread'`: Autoload file changes. You can undo by pressing `u`.
* `runtime! macros/matchit.vim`: Load the version of matchit.vim that ships
with Vim.
@@ -54,7 +51,7 @@ documentation for an option. If you install [scriptease.vim][], you can press
Normally, sensible.vim loads after your vimrc, making it a bit tricky to
override (although you could use `after/plugin/sensible.vim`). If you want to
load it earlier, add the following line to you vimrc, then put your overrides
load it earlier, add the following line to your vimrc, then put your overrides
below.
runtime! plugin/sensible.vim
@@ -73,10 +70,10 @@ persuasion for me to remove them. Everything else is negotiable.
Feel free to ask a question if you're not sure why I've set something, as I
haven't put much effort into documenting that.
I'm a stickler for [commit messages][], so if you send me a pull
request with so much as superfluous period in the subject line, I will
close it without so much as a second thought, and save my precious attention
for someone who can actually follow directions.
I'm a stickler for [commit messages][], so if you send me a pull request with
so much as a superfluous period in the subject line, I will close it without
so much as a second thought, and save my precious attention for someone who
can actually follow directions.
[GitHub issues]: http://github.com/tpope/vim-sensible/issues
[commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

View File

@@ -1,84 +1,158 @@
" sensible.vim - Defaults everyone can agree on
" Maintainer: Tim Pope <http://tpo.pe/>
" Version: 1.0
" Version: 2.0
if exists('g:loaded_sensible') || &compatible
finish
else
let g:loaded_sensible = 1
let g:loaded_sensible = 'yes'
endif
if has('autocmd')
" Use :help 'option' to see the documentation for the given option.
" Disable vi compatibility, if for some reason it's on.
if &compatible
set nocompatible
endif
" Check if an option was set from a file in $HOME. This lets us avoid
" overriding options in the user's vimrc, but still override options in the
" system vimrc.
function! s:MaySet(option) abort
if exists('*execute')
let out = execute('verbose setglobal all ' . a:option . '?')
else
redir => out
silent verbose execute 'setglobal all' a:option . '?'
redir END
endif
return out !~# " \\(\\~[\\/]\\|Lua\\)[^\n]*$"
endfunction
if s:MaySet('backspace')
set backspace=indent,eol,start
endif
" Disable completing keywords in included files (e.g., #include in C). When
" configured properly, this can result in the slow, recursive scanning of
" hundreds of files of dubious relevance.
set complete-=i
if s:MaySet('smarttab')
set smarttab
endif
set nrformats-=octal
" Make the escape key more responsive by decreasing the wait time for an
" escape sequence (e.g., arrow keys).
if !has('nvim') && &ttimeoutlen == -1
set ttimeout
set ttimeoutlen=100
endif
if has('reltime') && s:MaySet('incsearch')
set incsearch
endif
" Use CTRL-L to clear the highlighting of 'hlsearch' (off by default) and call
" :diffupdate.
if maparg('<C-L>', 'n') ==# ''
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
endif
if s:MaySet('laststatus')
set laststatus=2
endif
if s:MaySet('ruler')
set ruler
endif
if s:MaySet('wildmenu')
set wildmenu
endif
if s:MaySet('scrolloff')
set scrolloff=1
endif
if s:MaySet('sidescroll') && s:MaySet('sidescrolloff')
set sidescroll=1
set sidescrolloff=2
endif
set display+=lastline
if has('patch-7.4.2109')
set display+=truncate
endif
if s:MaySet('listchars')
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
" Replace the check for a tags file in the parent directory of the current
" file with a check in every ancestor directory.
if has('path_extra') && (',' . &g:tags . ',') =~# ',\./tags,'
setglobal tags-=./tags tags-=./tags; tags^=./tags;
endif
if s:MaySet('autoread')
set autoread
endif
if s:MaySet('history')
set history=1000
endif
if s:MaySet('tabpagemax')
set tabpagemax=50
endif
" Persist g:UPPERCASE variables, used by some plugins, in .viminfo.
if !empty(&viminfo)
set viminfo^=!
endif
" Saving options in session and view files causes more problems than it
" solves, so disable it.
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
" If the running Vim lacks support for the Fish shell, use Bash instead.
if &shell =~# 'fish$' && (v:version < 704 || v:version == 704 && !has('patch276'))
set shell=/usr/bin/env\ bash
endif
" Disable a legacy behavior that can break plugin maps.
if has('langmap') && exists('+langremap') && &langremap && s:MaySet('langremap')
set nolangremap
endif
if !(exists('g:did_load_filetypes') && exists('g:did_load_ftplugin') && exists('g:did_indent_on'))
filetype plugin indent on
endif
if has('syntax') && !exists('g:syntax_on')
syntax enable
endif
" Use :help 'option' to see the documentation for the given option.
set backspace=indent,eol,start
set complete-=i
set showmatch
set autoindent
set smarttab
set ttimeout
set ttimeoutlen=50
set incsearch
set smartcase
" Use <C-L> to clear the highlighting of :set hlsearch.
if maparg('<C-L>', 'n') ==# ''
nnoremap <silent> <C-L> :nohlsearch<CR><C-L>
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
set laststatus=2
set ruler
set showcmd
set wildmenu
set scrolloff=1
set sidescrolloff=5
set display+=lastline
if &listchars ==# 'eol:$'
set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
if &termencoding ==# 'utf-8' || &encoding ==# 'utf-8'
let &listchars = "tab:\u21e5 ,trail:\u2423,extends:\u21c9,precedes:\u21c7,nbsp:\u26ad"
let &fillchars = "vert:\u259a,fold:\u00b7"
endif
" From `:help :DiffOrig`.
if exists(":DiffOrig") != 2
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
\ | diffthis | wincmd p | diffthis
endif
set autoread
set autowrite
set fileformats=unix,dos,mac
set viminfo^=!
if isdirectory(expand('~/.cache/vim'))
if &directory =~# '^\.,'
set directory^=~/.cache/vim/swap//
endif
if &backupdir =~# '^\.,'
set backupdir^=~/.cache/vim/backup//
endif
if exists('+undodir') && &undodir =~# '^\.\%(,\|$\)'
set undodir^=~/.cache/vim/undo//
endif
endif
if exists('+undofile')
set undofile
endif
" Allow color schemes do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
set t_Co=16
endif
if !exists('g:netrw_list_hide')
let g:netrw_list_hide = '^\.,\~$,^tags$'
" Correctly highlight $() and other modern affordances in filetype=sh.
if !exists('g:is_posix') && !exists('g:is_bash') && !exists('g:is_kornshell') && !exists('g:is_dash')
let g:is_posix = 1
endif
" Load matchit.vim, but only if the user hasn't installed a newer version.
@@ -86,7 +160,7 @@ if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
runtime! macros/matchit.vim
endif
" Make Y consistent with C and D. See :help Y.
nnoremap Y y$
" vim:set ft=vim et sw=2:
" Enable the :Man command shipped inside Vim's man filetype plugin.
if exists(':Man') != 2 && !exists('g:loaded_man') && &filetype !=? 'man' && !has('nvim')
runtime ftplugin/man.vim
endif