Significant changes to vimfiles (newest changes first).
Changes marked with "BREAKING CHANGE" indicate an incompatible change that may require adjustment of per-user settings.
- Upgrade Neovim
cmp
plugin to version 2024-11-02. This fixes the warningvim.lsp.parse_snippet() is deprecated
in Neovim 0.10.0. - Upgrade Neovim
cmp-cmdline
plugin to version 2024-03-22. - Upgrade Neovim
cmp-nvim-lsp
plugin to version 2024-03-17. - Upgrade Neovim
cmp-nvim-ultisnips
plugin to version 2024-08-02. - Upgrade Neovim
plenary
plugin to version 2024-09-17.
- Upgrade togglecursor plugin to version 0.6.0. This adds support for WezTerm
and kitty, changes tmux escaping to default to off as tmux has long worked
correctly out-of-the-box, and drops support for
g:togglecursor_disable_neovim
as it's no longer necessary.
- Fix use of
mypy --python-executable
on Neovim. Luaif not expression
must be written asif expression == 0
for integer-valued expressions such asvim.fn.has('win32')
.
Upgrade ALE plugin to version 2024-10-14.
Upgrade vim-lsp plugin to version 2024-10-23.
Improved Python support:
New Vimfiles-supplied custom commands for Python virtual environments:
Venvinfo Venvdeactivate Venvactivate
See
:help notes_venv
for details.Use
mypy --python-executable
on Unix only to allow a globally installedmypy
to follow dependent Python modules in venvs that lack a dedicated copy ofmypy
.python3
(if found onPATH
) orpython
on the will be used as the interpreter formypy
type checking. On Windows, this technique doesn't seem to work for some reason, so--python-executable
is not used.Note that there is a new recommended global configuration for
mypy
to help this work smoothly; see:help notes_optional
for details.
:help notes_lsp
documents how to debug LSP issues with log files.Make Vimfiles startup cleanly with Vim-7.4.
When installed, use the impressive Ruff Python linter/formatter instead of the slew of alternatives it replaces (
flake8
,black
,isort
,mccabe
,pyflakes
,pylint
, etc.).Update the instructions in
:help notes_setup_optional
for installing Python-based linters and formatters. In particular, the steps forpython-lsp-server
have been updated to useruff
in lieu of the above-mentioned alternatives. It's recommended to re-installpython-lsp-server
to take advantage of Ruff; if you've set things up following the notes in the past, this amounts to:pipx uninstall python-lsp-server pipx install python-lsp-server pipx inject python-lsp-server pylsp-mypy pipx inject python-lsp-server python-lsp-ruff
In addition, it's recommended to create
~/.config/ruff/pyproject.toml
to configure Ruff globally as explained in the notes.Fix the configuration of Python's
mypy
type checker so that it properly picks up modules from a virtual environment. Ifmypy
is installed globally (in its own virtual environment, for example), then it defaults to using its own Python interpreter and therefore can't find the Python modules installed in the virtual environment of the files being scanned. Use the switchmypy --python-executable PYTHON
to point to a Python interpreter in thePATH
.PYTHON
here ispython3
if that's in thePATH
(as on Unix machines), andpython
otherwise (such as for Windows). If a project's virtual environment is activated before launching the editor,mypy
will automatically pick up that environment's modules; otherwise, it will continue to work as before, typing checking what it can but being unable to compare against third-party modules. Thismypy
configuration applies when running under the language serverpython-lsp-server
, for both Vim and Neovim.
- Update
:help notes_search
to mention#
as the preferred method of launching a recursive search for the word under the cursor. This is implemented in terms of the custom:G
command that invokes the:Grepper
plugin using the best recursive searcher detected on the system. Ripgrep is the preferred tools and is highly recommended. - Upgrade Neovim LSP-related plugins:
-
lspconfig
-null-ls
is nownone-ls
(community-supported fork) -none-ls-shellcheck
(Shellcheck support was pulled out ofnone-ls
) - Move "Plugins" section of
:help notes
to the end, promoting:help notes_customizations
and:help notes_tips
to be earlier in the file and not lost behind the large number of plugins.
- Fix error
E492: Not an editor command: SetupBashFixcommand
when using Bashfc
(fix command) to edit the shell command line using the Ubuntu stock build of Vim. Because of global settings in/etc/vim/vimrc
, launching Vim via Bash'sfc
command causes~/.vim/filetype.vim
to be processed and a filetypeautocmd
to fire before~/.vim/vimrc
has a chance to be processed. Because theautocmd
is fired again oncevimrc
has been fully read, the work-around just checks for the existence of the customSetupBashFixcommand
command before invoking it. This is not an issue for custom-compiled Vim that lacks the Debian-derived globalvimrc
settings.
- Add standard source-code support for C#. See
:SetupCs
invimrc
, which currently just chains to the usual:SetupSource
.
- Upgrade Mundo plugin to version 2023-12-15. This fixes an incompatibility with Python 3.12.
- Update Neovim Telescope plugin to version 0.1.8 (along with dependent plugin
plenary
. This allows Telescope to work with Neovim 0.10.0. - Note how to install Neovim using the Ubuntu package manager.
Setup
titlestring
to include the "server name" of the running editor instance. On Vim, this comes from--servername
, and on Neovim it comes from the named pipe used by Neovim at startup or by the--listen
argument. This allows activating the running instance's window by searching for the expected name in the window's title (e.g., usingwmctrl -a
on X11).BREAKING CHANGE: upgrade ALE plugin to version 2024-05-08.
Support for the old
python-language-server
was removed from ALE in 2021 because that LSP became unmaintained.python-lsp-server
is a community-supported fork of the LSP that ALE (and other plugins) support.The old LSP's executable was named
pyls
; the new one ispylsp
. Configuration in ALE (and in Vimfiles) had been done using variables containing the stringpyls
, but now they containpylsp
.See
:help notes_setup_optional
in thepython-lsp-server
section for instructions on setting up the newpylsp
. If desired, you may also uninstall the oldpyls
viapipx uninstall python-language-server
(or similar, depending on how you installed it).The Vimfiles variable
g:EnableVimLsp_pyls
has becomeg:EnableVimLsp_pylsp
.The support in Vimfiles for Neovim and Python LSPs was already using the new
pylsp
, so you might already have it installed. The installation instructions mentioned above have some additional details that might make it worth reinstallingpylsp
for some optional extra features.Switch ALE Rust support from old
rls
torust-analyzer
.Recommend newer
lua-language-server-3.9.1
.
- Restore the
:Highlight
command functionality that went missing due to some change in Vim or Vimfiles. The underlying cause of the regression hasn't been determined, but something is clearing thesyntax match
commands that the:Highlight
command was adding. To work around this, thesyntax match
commands are now re-added when theSyntax
autocmd fires.
Add custom surround character
S
to surround with double-backticks (for use with thesurround
plugin). This is especially convenient for reStructuredText literal text (as found in this paragraph). For example, to to surround the below expression with double-backticks:y = m*x + b
Visually highlight the portion to surround, then press
SS
, yielding:``y = m*x + b``
Upgrade
surround
plugin to version 2022-10-25.
- Restructure
:help notes
for easier maintenance. - Move
loremipsum
plugin intobundle/
directory. - Move
project
plugin intobundle/
directory. - Update setup instructions now that
.vimrc
/_vimrc
is no longer needed. The obsoletesetup.py
script andhome.vimrc
have been removed. - Update instructions for building Vim from source.
- Update installation instructions for Vim and Neovim.
Fix some syntax highlighting issues in
.rst
and.md
files caused by embedding bothcpp
andc
languages into code blocks. Becausecpp
internally includes the definitions forc
, some syntax regions were being duplicated, causing issues. Also adjust the number of lines used for resynchronization of syntax highlighting for several languages to:syntax sync minlines=300 maxlines=300
This helps keep Vim from becoming confused when hopping around a file containing lengthy snippets of an embedded language (such as example
c
code inside an.rst
file).
- Disable the use of UltiSnips as a source for the Neovim
cmp
plugin (which provides completion options as you type). When there are many snippets defined, performance of insertion-mode typing is unusably slow when UltiSnips are used.
Add
<Space>fq
for Telescope over QuickFix list (Neovim only).Add
<Space>fg
for Telescopelive_grep
defaulting to the word under the cursor (Neovim only).Follow symlinks for Telescope
find_files
operations:<Space>ff - find files <Space>pf - find files at project root <Space>pp - find files at project root
- BREAKING CHANGE: change cscope mapping prefix from
CTRL-\
to<Space>c
for better typing ergonomics. - Add Neovim support for cscope. See
:help notes_cscope
for details.
- Reorganize colorscheme plugins in
:help notes
. - Add Nightfox customizable dark colorscheme for Neovim.
- Add Iceberg bluish colorscheme for Vim and Neovim.
- Add Melange dark or light colorscheme for Neovim.
- Add Sonokai colorscheme (Monokai with reduced contrast) for Vim and Neovim.
- Restore Dr. Chip's Align plugin; use prefix
\|
for mappings instead of the default\
to avoid mapping collisions. See:help notes_align
for details.
- Do not allow writing a file named apostrophe (a too-common error for Mike on his laptop keyboard).
Provide helper functions for plugin enable status:
To enable, disable, or check the enabled status of a plugin, use the below functions:
call vimf#plugin#enable('plugin_name') call vimf#plugin#disable('plugin_name') if vimf#plugin#enabled('plugin_name') " 'plugin_name' is enabled.... endif
Update pathogen plugin to version 2022-08-24.
Adjust patterns where Pathogen probes for bundles below each directory in 'runtimepath':
bundle/{} # Both Vim and Neovim vim-bundle/{} # Vim only nvim-bundle/{} # Neovim only pre-bundle/{} # Higher-priority; both Vim and Neovim pre-vim-bundle/{} # Higher-priority; Vim only pre-nvim-bundle/{} # Higher-priority; Neovim only
So, for example, to add a Neovim-only bundle named
SomeBundle
to your personal~/.vimuser/
tree, place it in:~/.vimuser/nvim-bundle/SomeBundle
See
:help bundle_installation
for details.
- Extend "SwapIt" plugin to support
TODO/DOING/DONE
. With the cursor on one of these words, pressing CTRL-A will increment to the next one, and pressing CTRL-X will decrement to the previous one.
- Enable UltiSnips only if Python3 is available. UltiSnips no longer supports Python2.
- Wrap
:lua
command inexecute
to prevent errors on Vim builds that lack Lua. Even though the:lua
command was inside anif
body where the predicate was false, Vim still complains about the lack of Lua while skipping over the inactive line. - Detect location of
pynvim
for Python support on Windows. Previous probing looked only forbin/python
in the venv; nowScripts/python.exe
is probed as well. - Upgrade fontsize plugin to version 0.5.0 to support Neovim GUIs.
Adjust mappings for fuzzy file finding:
<Space>pf - find files at project directory " Experimental: same as <Space>pf but easier to type: <Space>pp - find files at project directory
In Vim, this is for
CtrlPRoot
; in Neovim, it's for Telescope.For fuzzy file finding relative to the current file's directory, the existing mapping for Vim has been extended to Neovim:
<Space>ff - find files at current file's directory
In Vim, this is for
CtrlPCurFile
; in Neovim, it's for Telescope.For Neovim, probe at
~/venvs/pynvim
and/opt/pynvim
for the virtual environment holdingpynvim
.
- Update UltiSnips plugin to version 2023-08-05. This works around a crash caused in part by a bug in Neovim 0.9.1 (slated to be fixed in a later 0.9 release).
- Disable the WhichKey plugins for
marks
andregisters
because of laggy behavior on slower machines. The worst behavior comes from the use ofnvim_feedkeys()
without thei
flag, causing sequences likeCTRL-r 0 moreStuff
to be processed out-of-order, withmoreStuff
coming before the value of register0
. It's possible that using thei
flag would fix the out-of-order issues, but these plugins don't add much value and best-case would cause typing lag even if the out-of-order behavior were fixed.
- Update Telescope plugin to version 2023-07-29. This uses a better work-around for the fast typing problem noted 2023-07-22.
Disable the Eunuch plugin's insert-mode mapping of
<CR>
. This is needed to avoid interfering withvim-endwise
while using Neovim with thecmp
plugin. In particular,vim-endwise
would fail to work after typingif true; then<CR>
in a shell script after editing the shell script via:e shellscript.sh
(though it works withnvim shellscript.sh
for some reason).Eunuch's insert-mode mapping of
<CR>
isn't necessary and this is the easiest way to avoid breakingvim-endwise
.Upgrade the Endwise plugin to version 2023-04-23.
Work around lack of 'autoread' feature in Neovim GUIs. Both
nvim-qt
andneovide
as of 2023-07-29 do not correctly work with the 'autoread' feature. (see equalsraf/neovim-qt#846).For now, provide a work-around to detect the
FocusGained
event and perform a:checktime
manually to trigger the 'autoread' logic.
Restore
timeoutlen
to 3 seconds.The previous shortening to 1.5 seconds was too short. If waiting the full 3 seconds for WhichKey to pop up feels too long, it turns out plugin can be triggered directly via:
:WhichKey
Upgrade Telescope plugin to version 2023-07-22. This fixes problems with fast typing wherein the user's keystrokes intended to be used as a search pattern can be ignored or can cause mis-behavior of the Picker.
Add Telescope mappings for tags:
<Space>ft - find tags in current directory <Space>fT - find tags in current buffer
Upgrade CtrlP plugin to version 2022-08-03. This includes a patch to prevent referencing the 'cst' ('cscopetag') option when it is unavailable (a patch needed for use with Neovim, as the latter lacks this option).
Require case-sensitive matching for tags by setting
tagcase=match
.Previously Vim's default value
tagcase=followic
was used, meaning it followed theignorecase
setting. But generally tag lookup should ignore case, as most of the time tags are looked up by pointing the cursor on a tag and pressing CTRL-]. When case is ignored, the binary search optimization for sorted tagfiles can't be done, and tag searches with largetags
files are very slow.Note that using a regular expression for tag lookup causes the
ignorecase
setting to be honored again. So:" `sometag` must match the case exactly: :tag sometag " `sometag` is treated like a regex, so it matches case-insensitively. " Note that this is a substring match as well, so it would match " `anothersometag` as well: :tag /sometag
- Add experimental support for Neovim. Documentation is greatly lacking for
setting this up. Neovim-specific changes shouldn't take effect until
~/.config/nvim/init.lua
is changed to explicitly chain to~/.vim/init.lua
.
- Upgrade UltiSnips plugin to version 2023-02-01.
Shorten
timeoutlen
to 1.5 seconds.This attempts to balance competing desires:
- A longer delay gives the user more time to recall and press the keys in a multi-key mapping.
- A shorter delay allows the Neovim which-key plugin to pop up a help menu faster to show possible menu completions when the user is unsure of the available mappings.
timeoutlen
also controls how long "micro modes" last for things like the BufMRU plugin (launched via<C-^>
).Hopefully this
timeoutlen
strikes a good balance.Keep
signcolumn
on all the time, rather than allow it to disconcertingly come and go as errors are detected. This was previously the case when ALE was enabled; this change ensures thesigncolumn
is active even without ALE.
Increase szakdark colorscheme contrast to aid in readability for
NonText
andSpecialKey
highlight groups by lightening the foreground color.To opt back into the subtle highlighting for these highlight groups:
let g:szakdark_subtle = 1
Subtle highlighting of the
Search
group was already available via:let g:szakdark_subtle_search = 1
By default,
g:szakdark_subtle_search = 0
, after which by defaultg:szakdark_subtle = g:szakdark_subtle_search
; therefore, opting into subtleSearch
highlighting also opts into subtleNonText
andSpecialKey
highlighting by default as well. To separately control these features, define both variables explicitly.Remove
~/.vim/scripts.vim
. Vim uses this file for extended filetype detection. Neovim no longer supports this. At present, the only use was to detect#format rst
at the start of certain files from an obsolete Wiki engine, so this file has been removed.Avoid
v:true
for Vim 7.4 compatibility.
- Set
printoptions
only if the:hardcopy
feature is available. Note that Neovim recently removed the:hardcopy
command. Until a better solution arrives, the suggestion is to use the:TOhtml
command and use a browser to make the actual printout.
- Update vim-lsp plugin to version 2023-05-16.
- Update vim-lsp-ale plugin to version 2021-12-29.
- Update
tool/gentags
to sort tags to put C prototypes later in thetags
file. This makes function definitions appear first so that:tag
andCTRL-]
will jump to the definition. Previously it appeared this would naturally be the case anyway, but it turns out thattags
files sort first on the tag name, then on the filename where the tag is found, then on other fields. Iffile.c
contains the tagmyfunc
(a function definition, typef
) andfile.h
contains the tagmyfunc
(a function prototype, typep
), the definition sorts first becausefile.c
sorts beforefile.h
; but if the paths areinc/file.h
andsrc/file.c
, the former sorts first (inc
comes beforesrc
) and the prototype ends up first in the sort order. Post-sorting ensures that the prototype comes later regardless of the file name.
- Configure
.toml
files (analogously to.yaml
files) (expand tab characters, two-space indentation, configurable spell checking).
- Adjust
t_8f
andt_8b
(terminal foreground and background colors) forTERM
values starting withtmux
in addition to those starting withscreen
. Historically, tmux has usedTERM
values starting withscreen
, but more recent tmux now uses value starting withtmux
(noticed in Ubuntu 23.04).
- Update Grepper plugin to version 2021-08-30. Also fix the Grepper patch that
forces a
BufReadPost
event when a search operation finishes. Previously,setqflist(list)
was used to write the current search results back to the current QuickFix list, but this actually creates a new QuickFix list.setqflist(list, 'r')
replaces the list with itself so that:colder
operations don't encounter duplicate sets of search results.
- Update extline plugin to v0.2.1. This fixes the line length for titles with multi-byte characters and allows multi-byte characters for "horizontal line update".
Stop overriding
CTRL-]
and friends for following tags. The built-in defaults are actually more convenient than originally thought. The defaults are:CTRL-]
jumps to the definition directly, saving the navigation of a menu in this common case.g ]
always results in a menu for matching tags.g CTRL-]
makes a menu unless there's only one matching tag.
To restore the old mappings,
let g:SwapTagKeys = 1
in yourVIMRC_BEFORE
file.
- Update Fixkey plugin to v0.3.15. This fixes a regression in version 0.3.14
for terminals that lack
TermResponse
. Now, in addition toTermResponse
, Fixkey watches for theVimEnter
autocmd to ensure Fixkey setup will always be invoked. Notably tmux, PuTTY, and Linux console do not triggerTermResponse
autocmd events.
- Remove obsolete
:ResetGuiFont
command. This was a work-around from at least a dozen years ago to handle a long-forgotten bug in Fedora's build of Vim. The work-around was to use:let &guifont=&guifont
to set the font back to its current value. This function had been part of:RefreshScreen
(invoked byCTRL-L
).
Adjust ALE
flake8
settings. Note that newerflake8
no longer supports a user-wide configuration file in~/.config/flake8
, so per-user adjustments no longer take place automatically. Adjustments:- Ignore "I202 Additional newline in a group of imports".
- Match Black's use of double-quoted strings with
--inline-quotes=double
. - Match the python-language-server default McCabe complexity value via
--max-complexity=15
.
Override these changes by adjusting
g:AleFlake8Ignores
and/org:ale_python_flake8_options
(seevimrc
).
- Disable spell-checking for readonly help pages to make reading them easier.
When editing a help file, spell checking remains on. To enable this, spelling
may now be disabled on a per-buffer basis using
b:Spell
(see:help notes
). - Upgrade Fixkey plugin to v0.3.14. This works around a problem with newer Vim
and gnome-terminal whereby the user's first keystroke is swallowed. See
:help fixkey
for details.
- Setup ALE to use the C pre-processor with assembly files.
- Suggest use of
~/.config/clangd/config.yaml
to configure clangd to disable warning about unused functions in header files (see:help notes
near linters/formatters). - When clangd is available, remove linters "cc" and "clangtidy", as they just get in the way.
- Remove insufficiently maintained Clojure language support (thanks to John Szakmeister).
Add
t
snippet for- TODO:
in reStructuredText and Markdown.Set
wildignore
to ignore a few directories:Meson build-related directories:
builddir bindir subprojects
Python virtual environments:
venv
Rework configuration settings for markdownlint (
mdl
).Any
~/.mdlrc
file will take precedence; if this file does not exist,g:ale_markdown_mdl_options
will be set to pointmdl
at the file$VIMFILES/etc/mdl-style.rb
, which contains rule adjustments formdl
.To use the above
$VIMFILES/etc/mdl-style.rb
file when runningmdl
from the command line, create~/.mdlrc
with contents:style "#{File.dirname(__FILE__)}/.vim/etc/mdl-style.rb"
Disable highlighting of the
markdownError
syntax group for Markdown files; this group indicates the presence of underscores within words. Such underscores are not generally errors (see https://spec.commonmark.org/0.30/#emphasis-and-strong-emphasis). To retain the original highlighting anyway, use:let g:LocalAllowMarkdownError = 1
- Add UltiSnips for Rust
eprintln!()
and friends:epr
=>eprintln!("{}", ...);
eprd
=>eprintln!("{:?}", ...);
epri
=>eprint!("{}", ...);
eprid
=>eprint!("{:?}", ...);
- Add new
gentags
utility supporting both Universal and Exuberant Ctags.
- Upgrade tagbar plugin to version 3.1.1.
- Upgrade Rust plugin to version 2022-11-27.
- Disable ShellCheck overly-cautious warning: "SC2016: Expressions don't expand in single quotes", as using single quotes is idiomatic for suppressing special behavior of characters such as backticks.
- Update Rust snippets.
- Disable markdownlint warning
MD036
(emphasis used instead of a header).
- Update Eunuch plugin to version 2022-10-12. See
:help notes_eunuch
for summary of plugin commands. - Update tComment plugin to version 2022-07-22.
- Add
Iface/
directory for the FSwitch plugin. Now pressing\of
will switch between*.c
/*.cpp
files insrc/
and correspondingly named*.h
files in any ofpubinc/
,include/
,inc/
, andIface/
directories. - Upgrade Markdown language support plugin to version 2022-10-13.
- Fix
gx
mapping that was inadvertently broken by removing the obsoletenetrw
plugin.netrw
(which ships with Vim) renamed the functionnetrw#NetrwBrowseX()
tonetrw#BrowseX()
in Vim v7.4.567. Thegx
mapping, which calls this function, now adapts to whichever name is available.
Map
Jenkinsfile
to filetypegroovy
.Add
inc/
directory for the FSwitch plugin. Now pressing\of
will switch between*.c
/*.cpp
files insrc/
and correspondingly named*.h
files in any ofpubinc/
,include/
, andinc/
directories.Update the reStructuredText footnote snippet to automatically insert
#
when appropriate. Typingfoot<Tab>
will now insert the following:.. [#label_num_star_or_backspace]
The
label_num_star_or_backspace
will be selected. Type desired footnote label, overwriting the selection. If the label is*
or a decimal number, the#
will be removed; if the label is any other non-empty value (or if the label is deleted by pressing Backspace), the#
will be kept. For example:.. [#text] After typing ``text`` and <Tab>. .. [1234] After typing ``1234`` and <Tab>. .. [*] After typing ``*`` and <Tab>. .. [#] After typing <Backspace> and <Tab>.
- Remove obsolete
netrw
plugin (version v147, from November 2012). This plugin comes bundled with Vim. At some point, the bundlednetrw
in old versions of Vim had an issue (now long forgotten) that was solved by including a newernetrw
in Vimfiles. That version is now ancient; even Vim 7.4 has a betternetrw
version (v156, from Feb 2016).
Add backtick as a reStructuredText snippet for inserting literal text.
To get this:
``some literal text``
Press this:
`<Tab>
to get this:
``<cursor_here>``
then type
some literal text
and press Tab to get:``some literal text``<cursor_here>
Two backticks are usable as the trigger as well.
This is the same as the trigger
lit
, but a bit less to type and easier to use after already typing one or two backticks by habit.
:set history=10000
to keep the maximum amount of command-line history.
- Note how to install
mdl
(Markdown linter). - Use
#!/usr/bin/env python3
forbuildtool
. - Use
#!/usr/bin/env python3
forsetup.py
. - Tweak
tool/execargs.py
for Python 3. - Use
#!/usr/bin/env python3
fortool/markdown2ctags/markdown2ctags.py
. - Use
#!/usr/bin/env python3
fortool/rst2ctags/rst2ctags.py
. - Modernize to Python 3 + Black various UltiSnips-related Python scripts
(
pythonx/sniputil.py
,UltiSnips/*.py
).
- Add
yaml
to embedded languages for reStructuredText and Markdown. - Configure
markdownlint
(mdl
) warnings for ALE.
set virtualedit=block
to enable "virtual" space (beyond end-of-line) when in visual-block mode. This is useful for making a rectangular selection at the end of the longest line in a set of lines of varying lengths.
Change ALE configuration for flake8 from using
--ignore
to using--extend-ignore
; otherwise, any ignores set in configuration files will be replaced with the list ing:ale_python_flake8_options
. Currently, Vimfiles uses:--extend-ignore=E203,N811,N812,N813,N814,W503
- Add support for Zig programming language (syntax highlighting, ALE, vim-lsp).
After using
:DiffOrig
, wipe out scratch buffer when it is removed from the window. Remove obsolete:DiffClose
,:DiffOff
commands.Upgrade endwise plugin to version 2022-03-24.
Add DiffChar plugin for highlighting differences based on characters and words. Mappings for navigating among differences:
[b Jump to the start position of the previous difference unit ]b Jump to the start position of the next difference unit [e Jump to the end position of the previous difference unit ]e Jump to the end position of the next difference unit <Leader>g Get difference unit from other buffer <Leader>p Put difference unit to other buffer
Add SpotDiff plugin for partial diffs of areas and line ranges.
Commands:
:[range]Diffthis Select a range of lines with [range] (default: current line) and make the current window diff mode. :Diffoff[!] Clear the selected range of lines and reset diff mode for the current window. If ! flag is specified, clear and reset for all windows in the current tab page. :Diffupdate Update the differences for the selected range of lines in the current tab page.
Upgrade
tool/ack
to v3.5.0.Synchronize
fifosignal
,fifowait
, andgentags
(found in~/.vim/tool/
) with upstream copies living inhome.git
(in~/bin/
).Use distinct
undodir
for Neovim-0.5 (since format has changed from Vim). For Neovim 0.5+, use$VIM_CACHE_DIR/undo2
instead of$VIM_CACHE_DIR/undo
.Add support for Python
isort
(using theblack
profile). Ifisort
is installed, it will be used by<Space>=
(which invokes:ALEFix
).
- Silently ignore missing syntax languages included into reStructuredText and
Markdown files. This fixes errors trying to include syntax support for
filetype=bash
for Vim versions prior to 8.1.2088 (where support forbash
was added).
- Update cpsm plugin to version 2021-07-25. This fixes a compilation error
based on a missing include of
<limits>
. - Promote the
date
snippet from being language-specific (just.rst
and.md
) to all file contexts. Pressdate<Tab>
to expand to today's date in the formatyyyy-mm-dd
. - Update CtrlP plugin to version 2022-02-09.
Set 'filetype' to
sshconfig
for*/.ssh/config.d/*.conf
. Allows adding snippets of configuration in~/.ssh/config.d/xxx.conf
that may be included with the following line in~/.ssh/config
:Include config.d/*.conf
Add extend_list plugin v0.1.0 (thanks to Matt). Press
CTRL-o n
to extend a list with a new list item (bulleted or numbered). For example, starting in insert mode with your cursor at<CURSOR_HERE>
below:1. First list item.<CURSOR_HERE>
Pressing
CTRL-o n
will automatically insert a newline and the next line number, e.g.:1. First list item. 2. <CURSOR_HERE>
:help extend_list
for details.Upgrade Markdown language support plugin to version 2022-01-24.
Add
bash
embedded syntax highlighting for Markdown, reStructuredText.Add
bash
UltiSnips snippet for Markdown and reStructuredText to start Bash-syntax code blocks.Refine the
:RstLiteralBlockFix
command. Previously, enumerators were permitted to be digits and letters, allowing list items like this:i. The first thing. ii. The second thing.
Though this is legal reStructuredText, it is uncommon; moreover, due to limitations with the regular expression for detecting enumerators in a list while checking for the
::
at the end of a line, in the more common case shown below, literals aren't detected properly. Consider this example of reStructuredText:This is a sentence with many words. Now a literal follows:: But it is not highlighted correctly because "words." looks like an enumerator, so the indentation is insufficient to be considered a valid literal (it would need to be indented beneath the "Now").
Any single word followed by a period will trigger this unwanted behavior. Since digits are by far more common and it's not very likely to have both an alphabetic enumerator and a
::
at end-of-line, a new control variable has been defined to disable alphabetic enumerators:g:RstLiteralBlockFix_alphaEnumerators
This defaults to zero, but it may be overridden in a
VIMRC_BEFORE
script to restore the previous treatment.
Fix problem with
:syntax on
in system vimrc (e.g.,/etc/vimrc
for Fedora 35). With an early:syntax on
in the system vimrc, Vim will load files from~/.vim/after/syntax/
before~/.vim/vimrc
has been sourced. This causes problems for syntax files that refer to functions defined in~/.vim/vimrc
(e.g.,SetupRstSyntax
for.rst
files).To work around this, Vimfiles now performs an early
:syntax off
(in case the system vimrc has turned it on), and places guards in the variousafter/syntax
scripts to check for the existence ofg:VimfilesFiletypeReady
(which proves~/.vim/vimrc
has run).
- Fix diffopt errors when using native macOS vim, see thoughtbot/dotfiles#655 (thanks to Dave Shepherd).
- Add non-Doxygen snippets for C code to sit alongside the Doxygen ones for:
- main()
- struct
- enum
- Default to activating the cpsm matcher for use with the CtrlP plugin if the
user has compiled it. See
:help notes_cpsm
for instructions on compiling cpsm.
- Add C-language snippets (with aliases):
unsigned char
(uc
) ->unsigned char
printf
(pr
) ->printf("fmt", ...)
dprintf
(dpr
) ->dprintf(fd, "fmt", ...)
fpprintf
(fpr
) ->fprintf(stderr, "fmt", ...)
sprintf
(spr
) ->sprintf(buf, "fmt", ...)
snprintf
(snpr
) ->snprintf(buf, sizeof(buf), "fmt", ...)
- Adjust
*
,#
, and<F3>
mappings so that no register values are clobbered.
- Add vim-lsp plugin for Language Server Protocol support. This plugin has
better LSP support than ALE, and the vim-lsp-ale plugin eases the integration
of these two plugins.
:help notes_vim-lsp
for more information, and see the "Linters/formatters" section of:help notes_setup_vimfiles
for installation instructions for various linters, LSP servers, etc.
- When using cpsm and ripgrep for listing files in a Git repo, explicitly ignore
.git
directories usingrg -g "!.git/"
.
- Update rust snippets:
- Remove parentheses from
if (pred)
andwhile (pred)
. - Add snippets for
assert!()
,assert_eq!()
, andassert_ne!()
.
- Remove parentheses from
- Upgrade Fugitive plugin to version 2021-08-03. This fixes a Fugitive error
with recent Vim; the error is
E1208: -complete used without -nargs
, as reported in tpope/vim-fugitive#1791.
- Add Unicode plugin. See
:help notes_unicode
for details. The main new feature is insertion-mode completion of a Unicode character name. For example, to insert aZERO WIDTH SPACE
Unicode character, typezero
and pressCTRL-x CTRL-z
to get a list of possible completions; use cursors to choose desired matching character. - Remove Characterize plugin; the
ga
functionality (identifying the Unicode character under the cursor) is now provided by the Unicode plugin. - Fix
E16
error when pressing<F4>
before populating the QuickFix window.
Convert the patch to the reStructuredText syntax highlighting file into a command that allows selectively enabling/disabling the fix. The fix will be enabled by default, but it may be disabled via:
:RstLiteralBlockFix off
See
:help notes_rst
for more information.
Upgrade "misc" plugin to version 1.17.6 (2015-05-21). This is a dependency for the "session" plugin.
Upgrade "session" plugin to version 2.13.1 (2015-11-01).
Patch "misc" plugin to add
:silent
duringsystem("uname")
during processing ofVimEnter
(from "session" plugin). This avoids interrupting terminal negotiations (especially for terminals such as Kitty and XTerm) and prevents display of these junk escape sequences such as:^[[2;2R^[[3;1R^[[>1;4000;20c^[]10;rgb:dddd/dddd/dddd^[\^[]11;rgb:0000/0000/0000^[\
Upgrade "swapit" plugin to version 2020-11-30.
Fix the global list of "swapit" swap lists. Previously, this was being done incorrectly in
$VIMFILES/after/plugin/swaplist.vim
via:SwapList
commands (which are supposed to be per-filetype, not global); now the global lists is being overwritten directly in g:default_swap_list. See theswaplist.vim
file for details.Upgrade "gruvbox" colorscheme to version 2020-07-03. This includes a fix for the error:
Error detected while processing function signature#Input..signature#mark#Toggle..signature#mark#Place..signature#sign#Place..signature#sign#RefreshLine: line 20: E121: Undefined variable: SignatureMarkText
This was fixed in morhetz/gruvbox#38.
Upgrade "signature" plugin to version 2018-07-06. This required a corresponding tweak to the
szakdark
colorscheme. Previously, the signature plugin required the variables below to contain embedded quotation marks, soszakdark
used to have this:let g:SignatureMarkerTextHL='"SignatureMarkerText"' let g:SignatureMarkTextHL='"SignatureMarkText"'
Now the quotes are not permitted, so
szakdark
now does this:let g:SignatureMarkerTextHL='SignatureMarkerText' let g:SignatureMarkTextHL='SignatureMarkText'
Upgrade "surround" plugin to version 2019-11-28.
Upgrade "ale" plugin to version 2021-05-04.
- Fix
E108: No such variable: "g:is_kornshell"
with Bashfc
in newer Vim. For some reason, in newer Vim theSetupBashFixcommand()
function is called twice by the autocmds infiletype.vim
, so nowunlet! g:is_kornshell
is used to avoid this error.
- Switch CMake syntax support to be based on upstream CMake-supplied files.
Update Markdown syntax support to version 2021-04-21.
Add a few snippets for Markdown:
Triggers for code blocks of the form:
```language some language text here ```
Languages:
code sh python ruby rust text
date
(to insert the date).
Use double-quotes for Python
ifmain
snippet, which generates:if __name__ == "__main__": main()
Update Fugitive plugin to version 2021-05-02.
Add CMake syntax support.
- Configure Grepper options for ripgrep and The Silver Searcher to remove
redundant copies of lines containing multiple matches of the pattern,
preventing errors in the Quickfix Reflector plugin (which sees duplicate lines
as editing conflicts). Interestingly, ripgrep's
--vimgrep
option, presumably named to reflect Vim's:vimgrep
output format, goes to extra trouble to duplicate matching lines even though Vim's own:vimgrep
command does not generate redundant lines.
Add updated reStructuredText language support plugin. This fixes some literal block highlighting issues as shown in this example:
- A bullet with literal following:: Correctly highlighted literal Incorrectly highlighted as literal Correctly unhighlighted.
Update Vis plugin to version v22 (Jan 7, 2020). This fixes problems with
:B
; see:help notes_vis
for usage.Update Visincr plugin to version 21h (Nov 22, 2017).
Update Visswap plugin to version v4g (Feb 18, 2016).
Update Vissort plugin to version v4 (Apr 16, 2013).
Update RunView plugin to version v4e (Jan 12, 2018).
- Update Fixkey to version v0.3.13, bringing support for alt-shifted-numbers.
- Upgrade cpsm to version 2020-08-01. This fixes some build issues on Ubuntu 20.04.
Fix EasyAlign pattern for C macro line continuations, ensuring the backslashes are found only at end-of-line. For example, given this C code:
#define SOME_MACRO() \ printf("Hello\n"); \ someFunction(with, many, args); \ printf("Bye\n");
Visually select the above lines and type:
\a\
This will align the final backslashes as:
#define SOME_MACRO() \ printf("Hello\n"); \ someFunction(with, many, args); \ printf("Bye\n");
- Update rst2ctags to v0.2.2 and markdown2ctags to v0.2.5 (thanks to John Szakmeister). This fixes issues some users were having with the chevron character with the tagbar plugin.
- Update rst2ctags to v0.2.3 and markdown2ctags to v0.2.6 (thanks to John Szakmeister). These come with 100 ms startup time savings which should improve tagbar responsiveness.
- Update Fugitive plugin to version 2020-09-27.
- Avoid changing
termguicolors
when unsupported on older Vim (thanks to John Szakmeister).
- Update Fixkey plugin to version v0.3.12. This extends detection of
TERM=linux
to include color cases such aslinux-16color
(thanks to Andy Weidenbaum).
Leave
indentkeys
at the default value for YAML files. Previously several keys were removed fromindentkeys
for a better editing experience, but recent changes to Vim's YAML indentation logic has made it important to leaveindentkeys
unmodified. The new logic indents a new line after a key:value pair until a subsequent key:value pair is typed (signified by pressing :). For example, typing the textkey1: value1<CR>key2
yields:key1: value1 key2
But typing the additional text
: value2
causes re-indentation (due to the:
key), yielding the expected:key1: value1 key2: value2
Map CTRL-6 to CTRL-^ to work around bug introduced in Gvim 8.2.0851: vim/vim#6457 The bug impacts Gvim on Linux, making both CTRL-6 and CTRL-^ no longer work with the BufMRU plugin. The work-around fixes CTRL-6 (but not CTRL-^).
Upgrade localvimrc plugin to 2020-06-30, fixing the below error that's exposed via newer Vim 8.3 (thanks to @unimpossible):
E654: missing delimiter after search pattern: Vim\%((\a\+)\)\=:E48
- Upgrade matchup plugin to version 5.0 2020-05-07.
Update Python indentation support to version 2020-03-20. This fixes the over-indentation for functions with long arguments. Previously, Vim would cause 8-character indentation when typing this function:
def some_function( some_long_argument, another_long_argument, third_long_argument,
Now it's properly indented as:
def some_function( some_long_argument, another_long_argument, third_long_argument,
- Add settings for
Dockerfile
files.
- If ripgrep (
rg
) is available, useg:ctrlp_user_command
to configure CtrlP to use ripgrep within Git repositories. This has the benefit of automatically taking into account.gitignore
files.
- Upgrade BufExplorer plugin to version 2020-02-17.
- Suppress annoying
Press <cr> to continue
message when usinggx
on Windows.
Ignore flake8 (pep8-naming) warnings:
- "N811 constant imported as non constant"
- "N812 lowercase imported as non lowercase"
- "N813 camelcase imported as lowercase"
- "N814 camelcase imported as constant"
Such renamings are almost certainly intentional.
- Ignore shellcheck warning "SC1090: Can't follow non-constant source".
- Ignore rstcheck warning regarding 'Enumerated list start value not ordinal-1'.
Disable ALE auto-completion. The completion menu pops up too often and steals keystrokes (especially Enter), impeding text entry. Especially bad is the case where an identifier has been manually typed and is followed by Enter; in this case, the popup menu steals the Enter key. Consider this Python snippet:
if condition: return variable something()
When typing
return variable<Enter>something()
without attempting to use the popup menu, ALE notices thatvariable
can be completed and it pops up the completion menu. Even though the user has typed the entire namevariable
, the menu stays up. Vim then swallows the Enter key to close the menu, injecting an error into the typed text:if condition: return variablesomething()
Therefore, ALE's automatic completion menu feature has been disabled. To manually invoke the completion menu, press CTRL-X CTRL-O.
- Disable ALE's python-language-server (pyls) pycodestyle plugin, allowing the flake8 plugin to be used instead. This allows the global ~/.config/flake8 configuration file to be honored when checking Python source files.
- Add configurability for Vim's 'comments' setting and the TComment plugin's
comment definitions for C and C++. By default, TComment's
gcc
command will now use// C++-style comments
for both C and C++. As before, Vim's 'comments' setting defaults to avoiding the use of leading asterisks in C-style comments. Now both of these defaults may be changed as explained in:help notes_tcomment
.
- Use
completeopt+=noselect,noinsert
only for Vim 7.4.775+ (thanks to John Szakmeister).
- Re-implement paragraph reformatting (
<M-q>
) so it doesn't require a named mark register.
- Fix Quickfix-reflector problem triggered by modifying QuickFix results without
saving them, followed by generating new results. This had been causing
exceptions that are now avoided by setting
nomodified
when new QuickFix results are read.
Fix
:help notes_mundo
to give the correct mapping for MundoToggle:<Space>qu :MundoToggle
- Add mapping
gV
to visually select the text that was last edited/pasted. - Enable the [n/m] message for searching (by removing
S
from 'shortmess'). In addition, adjust the mappings for*
,g*
,n
, andN
to ensure the message is visible. - For Vim 8.1.0360 and onward, enable the new internal diff engine (via the
diffopt
option) with two new features:indent-heuristic
: uses indentation to perform smarter diffing.algorithm:histogram
: uses the "histogram" algorithm (a derivative of the "patience" algorithm) as use in Git.
- Use the
q
register to mark and restore the cursor position when rewrapping paragraphs using<M-q>
. This works in normal, visual, and insert modes. See:help notes_reformatting
for details.
Fix CHANGES.txt note that erroneously suggested using the
VIMRC_BEFORE
file (typically ~/.vimuser/vimrc-before.vim) to force use of Powerline; this should have saidVIMRC_VARS
(typically ~/.vimuser/vimrc-vars.vim). If you have the line below (or similarg:EnableXxx
lines) in your vimrc-before.vim file, move them to vimrc-vars.vim:let g:EnablePowerline = 1
Allow override of g:PythonExecutable in
VIMRC_VARS
.Add
g:EnableSyntastic
to allow disabling both ALE and Syntastic.For internal function ReplacePowerlineSyntastic(), return early if Syntastic is disabled (only matters is Powerline is being used).
- Add
clang-format
intog:ale_fixers
for the C and C++ languages. Use<Space>=
to auto-format the current file (for C/C++ or any other supported language). - Detect POSIX shell vs. Bash for ALE
shfmt
(the default ALE fixer).
- Enable 24-bit color for terminals that support it. These include xterm and
screen/tmux where the environment variable
COLORTERM
is set totruecolor
.
- Remove sneak plugin; similar functionality is already present in the
EasyMotion plugin. See
:help notes_easymotion
for details. - Upgrade BufExplorer plugin to version 2019-02-13, with patches that allow deletion of the final buffer.
- Replace manpageview plugin with Vim's built-in support for Manpages.
The interface is similar: press
K
to get help for the word under the cursor. Use:Man topic
to get help ontopic
. The in-built support works properly with PageUp/PageDown, unlike the old manpageview plugin.
- Upgrade ALE plugin to version 2019-09-20.
- Setup completeopt to require menu selection (for better ALE support).
- Setup ALE auto-completion with Rust Language Server for Rust.
- Change mapping for toggling Mundo window to be
<Space>qu
(to match the theme that<Space>q
is the toggle window prefix. - Upgrade EasyMotion plugin to version 2019-03-23.
- Add Python Language Server (pls) support for ALE.
See
:help notes_setup_vimfiles
for information on installing pls. - Fade to black: adopt the black formatter's quote-character style (using double
quotes instead of single). Formatting with
<Space>=
will now reformat quotes in a Python source file. See:help notes_setup_vimfiles
for information on configuring a given project viapyproject.toml
to change any black options. In addition, the flake8 installation instructions have been updated to include a section on creating a flake8 configuration file. - Upgrade endwise plugin to version 2018-12-26.
Replace unmaintained Gundo plugin with Mundo (a fork that brings Python 3 support and other new features). Change mapping for toggling the undo window to
<Space>uu
. See:help notes_mundo
for details.Enable matchup plugin by default, and remove the obsolete matchit plugin it replaces. The matchup plugin provides enhanced support for matching related items.
Press
%
to match: - Bracket pairs: () [] {} - C-language #if / #else / #endif - HTML tags <start> / </end> - etc.See
:help notes_matchup
and:help matchup
for more details.
- Adjust Rust comment style for block comments.
- Merge correct branch of the rust plugin (was using master instead of the vimfiles branch).
- Restore the cursor position only for regular buffers. This avoids strange interactions with the ALE plugin and the QuickFix window.
Organize plugin patches into separate Git repositories:
- BufMRU.
- Grepper.
- manpageview.
- rust.
- OmniCppComplete.
- Powerline.
- z80.
Update Vimball plugin to version 33.
Update manpageview plugin to version 25u.
Update rust plugin to version 2019-08-30.
Update Grepper plugin to version 2019-09-04.
Also increase
g:grepper.stop
(the maximum number of matches before stopping) from 5000 to 20000.
~/.vim/buildtool
, a helper for compiling custom builds of Vim, now prefers/usr/bin/ruby
(if it exists) for the embedded Ruby interpreter. This avoids problems with Ruby interpreters installed viarvm
that live earlier in thePATH
.
- Add
rubocop
intog:ale_fixers
for the Ruby language. Use<Space>=
to auto-format the current file (for Ruby or any other supported language).
- Update vim-snippets plugin to version 2019-09-03. Note that these snippets
are not active by default; see
:help notes_snippets
for details. - Add some snippets for the Rust language.
Default to ALE (Asynchronous Lint Engine) instead of Syntastic where possible. ALE provides a better experience than Syntastic, giving immediate feedback as you type. ALE requires Vim 8.1.0834 or newer; for older Vim, Syntastic will be used instead of ALE. To force the use of Syntastic instead of ALE, place the following in your vimrc-vars.vim file:
let g:EnableAle = 0
For more details about ALE, see
:help notes_ale
and:help ale
.For better syntax highlighting speed, choose a synchronization point 1000 lines before the top of the current window instead of always choosing the top of the file. This makes a large improvement in speed for large files (e.g., a 10,000 lines reStructuredText file). In the rare event that 1000 lines is not enough to synchronize the syntax highlighting, issue the following command:
syntax sync fromstart
Stop forcing the use of Python 2 when both Python 2 and Python 3 are available. Python 2 support terminates by January 1, 2020. The variable g:ForcePython2 has been removed; the Python version is now chosen solely by detecting Vim's compiled-in interpreter support by probing in the order
pythonx
thenpython3
thenpython
.Ship an example
gentags
script in~/.vim/tool/gentags
. See:help notes_tag_files
for details. Add some notes about the Tagbar plugin.
- Upgrade airline and airline-themes plugins.
- Upgrade fugitive plugin to version 2019-08-21.
- Fix speed regression caused by dynamic :Highlight command, wherein navigation in large reStructuredText files was too slow.
- Upgrade experimental ale plugin to version 2019-08-18 (disabled by default).
- Ignore "Possible incomplete section title" warning for ale rstcheck.
- Add experimental support for Matchup plugin (disabled by default).
- Adjust default
Search
highlighting for more readable contrast (especially in Console Vim).
- Add
toml
syntax highlighting for reStructuredText and Markdown files.
- Update Fixkey plugin to version 0.3.11. This works around issues with newer Xterm.
- Improve
:Highlight
feature:- Long lines are now defined dynamically by the 'textwidth'.
- Highlighting colors are more muted.
Update reStructuredText snippets:
Remove over-indentation of some block snippets.
Add snippets for several new
code-block
types (sh
,python
,ruby
,rust
,text
).Add snippets for some directives (
.. math:
,.. [footnote]
,.. image:
, centered.. image:
.Bring in several markup snippets from John Szakmeister: literal syntax via lit`, inline math via
m
, superscript and subscript viasup
/sub
, hyperlink markup vialink
, title role viatitle
, and today's date viadate
.Supply visual-mode support for many of the snippets. Normally, snippets are expanded by typing the trigger followed by the <Tab> key; for example, to make a level-one heading, type
h1
followed by <Tab>, which will generate the following:Section =======
Typing
New Title
will cause the highlightedSection
to be replaced, yielding:New Title =========
Alternatively, the new title may be typed in and visually selected, followed by <Tab>,
h1
, and <Tab> again. In this case, the original visually selected text will be used as the title.
Add some mappings:
<Space>bd
:BW
; Wipe out buffer<Space>bD
:BW!
; Wipe out buffer (even if modified)<Space>bb
:CtrlPBuffer
; Select from open buffers<Space>ff
:CtrlPCurFile
; Select files relative to current file<Space>pf
:CtrlPRoot
; Select files relative to project root<Space>w
<C-w>
; Make window operations easier to type<Space>xdw
:StripTrailingWhitespace
More experimental configuration for ALE.
Remove obsolete incsearch and incsearch-fuzzy plugins. The primary feature (highlighting matches while typing a search pattern) has been incorporated into Vim itself, and as a result the plugins aren't being maintained.
After starting a search with
/
or?
, Vim will highlight the matches incrementally as you type in a search pattern. Before pressing Enter, you can press CTRL-t or CTRL-g to move to the previous or next match.Note also that Vimfiles remaps some keys in command-line mode (which applies during searching as well) in order to provide familiar EMACS-style editing (as found in the Bash shell, for example). To invoke the previous functionality for a given key, precede it by CTRL-o. For example, to access the search history which is normally available by pressing CTRL-f, use CTRL-o CTRL-f.
See
:help cmdline.txt
for more about Vim's command-line-mode keys.
- Update Rust language support plugin to version 2019-08-01, fixing some indentation issues.
- Adjust CMake keyword color in szakdark colorscheme (thanks to John Szakmeister).
- Support
.ini
syntax within Markdown files (thanks to John Szakmeister). - Sort the results from
ripgrep
by path to keep related matches together.
Detect additional form of Bash temporary files. Bash temporary files (used for the
fc
command) may be one of two forms, depending on whether Bash is compiled to use mkstemp():/tmp/bash-fc.XXXXXX ; for mkstemp() /tmp/bash-fc-dddddd ; without mkstemp()
There doesn't appear to be any particular reason Bash should use a period in one case and a hyphen in the other; it's probably just an unfortunate oversight.
- Allow embedded Ruby and .ini file syntax in code-block sections of reStructuredText files.
- For the
:G
(grep) command, change the priority to put Ripgrep (rg
) first and The Silver Searcher (ag
) second. This makes a difference only if you have Ripgrep installed. Also, default Ripgrep to smart-case when used with:G
(or:Grepper
in general) to align with the other tools' configuration.
- Fix Rust syntax highlighting so that it embeds properly in .rst files.
Previous to the patch, highlighting would continue on beyond the
code-block
.
- Extend the
gf
(goto file) mapping to first try the built-ingf
functionality before falling back to tags (thanks to Enno Konfekt). Forcing the use of tags may be done by visually selecting the filename and pressingctrl-]
to follow the selected tag.
- Update fixkey plugin to v0.3.10 to support mapping Alt-numbers.
- Add "rust" to the list of languages embeddable in reStructuredText code blocks.
- Add Rust's
target/
directory towildignore
. - Add
Inc()
function for generating incrementing sequences of numbers (say, to number some lines); see:help notes_list_of_numbers
.
- Add filetype support for
*.toml
files.
- Update Rust language support files to 2019-01-10.
- Update ALE plugin to version 2019-02-08.
- Gvim bug vim/vim#3417 is fixed in Gvim 8.1.0834, so the ALE work-around for this bug is no longer needed. Eventually, if/when ALE graduates from experimental status, it will be activated only for Gvim version 8.1.0834 and beyond.
Squelch Python flake8 warnings that go against recent PEP8 guidance:
- E203: whitespace before ':'
- W503: line break before binary operator
BREAKING CHANGE: Move "pylib" directory and contents to "pythonx" and adjust the Python path augmentation to follow the pattern described in
:help python-special-path
, introduced in Vim 7.3.1163. Vim versions 7.3.1163 and newer, compiled with Python support, automatically attempt to load modules in subdirectories of 'runtimepath' named "python2" (for Python 2), "python3" (for Python 3), and "pythonx" (for both Python 2 and 3). For older versions of Vim, we continue augment the Python path manually with the appropriate "python2", "python3", and "pythonx" directories found in the Vim runtimepath at startup.With this change, Python scripts need to be located in a "python2", "python3", or "pythonx" based on language support. See
:help python-special-path
for more information.Future uses of Python throughout vimfiles should support Python 3.
Force Python 2 if compiled with both Python 2 and Python 3 support and both interpreters are available. To disable forcing and allow the selection pattern of
pythonx
thenpython3
thenpython
place the following in yourVIMRC_VARS
file:let g:ForcePython2 = 0
Thanks to Mike Haig for this support.
- Remove pythoncomplete.vim. This package used to lag behind the files distributed in Vim, but it hasn't been updated since 2009 and Vim has been bundling it (and the Python 3-compatible equivalent) since 2010 (Vim 7.2).
Update fontdetect plugin to 0.3.0, supporting Python 3 on OS X (thanks to Mike Haig).
Update localvimrc plugin to version 2018-09-24, allowing graceful failure when Python is not available.
Update python-pep8-indent plugin to version 2018-09-17.
Remove Python syntax highlighting plugin. At one time, this plugin was an improvement over Vim's built-in support, but the plugin is no longer maintained and Vim's built-in support is now better.
This removes the :Python2Syntax and :Python3Syntax commands. The built-in support tries to support highlighting for Python 2 and 3 simultaneously.
Support Python 3 with buildtool.
- Update Clojure syntax highlighting support; drop other Clojure-related support (fireplace and redl) (thanks to John Szakmeister).
- Update markdown2ctags and rst2ctags plugins (thanks to John Szakmeister).
- Update Grepper plugin to 2018-09-08, fixing quadratic slowdown for searches with many hits when running with Vim 8+ (implying asynchronous searching).
- Add
!
option to:DiffOff
command to turn off diff for all windows. - Stop asking for confirmation from
:BW
when the buffer is in multiple windows, as the option for confirmation adds no safety, just inconvenience. - Setup ALE options for
shfmt
.
- Adjust airline sections for updated airline plugin capabilities.
- Update airline plugin to version 2018-07-26 and airline-themes to version 2018-07-30.
- Update grepper plugin to version 2018-04-23.
- Update fugitive plugin to version 2018-08-11.
- Update documentation on the :G command (see :help :G).
- Update ack plugin to version 2018-02-07 and ack to version 2.24.
- Remove deprecated ag plugin; create commands that map onto the Ack plugin but which use the "ag" utility (e.g., :Ag -> :Ack, but using "ag").
- Update bufexplorer plugin to version 2018-01-25.
- Update endwise plugin to version 2018-05-13.
- Update surround plugin to version 2018-07-23.
- Update bufkill plugin to version 2018-03-20.
- Update ultisnips plugin to version 2018-05-01 and sample snippets plugin to version 2018-07-16.
- Update easy-align plugin to version 2017-06-03.
- Update Lusty plugin (combining LustyExplorer and LustyJuggler) to version 2018-07-24.
- Update localvimrc plugin to version 2018-08-10.
- Update quickfix-reflector plugin to version 2018-01-26.
- Tidy up setup.py formatting and verify it works with Python 2/3.
- When pressing <F4>/<s-F4> to view the next/previous QuickFix/Location List message, close the QuickFix/Location List window if we've run out of messages in that direction as a convenience.
- Fix IsGetQuickFixWin() function to properly use getwininfo() fields.
- Patch grepper plugin as a better work-around for its interaction problems with QuickFix Reflector.
- Update buildtool to use
build/
instead of__TMP__/
so that this temporary directory will be ignored by default by many searching tools.
Update incsearch plugin to version 2017-11-23 and incsearch-fuzzy plugin to version 2016-02-15.
To further avoid conflict with tmux's CTRL-j key, the CtrlP plugin's primary keybindings for navigating its command prompt history have been changed to ALT-n/ALT-p. (For backward compatibility, CTRL-j/CTRL-k remain as aliases for ALT-n/ALT-p.)
For incsearch plugin, change bindings for scrolling from CTRL-j/CTRL-k to ALT-n/ALT-p to avoid conflict with tmux's CTRL-j key and to allow entry of digraphs via CTRL-k. Also, change "g/" to invoke the stock Vim "/" behavior for cases where incsearch is too slow.
Upgrade eunuch plugin to version 2018-08-10.
Update buildtool to automate setting up environment variables on Fedora, and to ensure use of GTK3 for the GUI.
No longer recommend copying the distro's vimrc file when compiling Vim. Distro-provided vim settings are no longer required because Vim now includes reasonable defaults for users without .vimrc files. Distro-provided defaults can also supply bad settings (e.g., pointing Vim's runtime path to the old distro-supplied runtime files); therefore, it's recommended to remove any distro-supplied vimrc file via:
sudo rm -f /usr/local/share/vim/vimrc
This fixes errors in
~/.vim/filetype.vim
of the form:E10: \ should be followed by /, ? or &
- Set 'foldlevel' to 99 for reStructuredText files. Vim v8.1.0025 added support
for syntax-based folding for reST files, which has the unfortunate
side-effect of activating folding by default. Setting 'foldlevel' to 99
prevents this while making it easy to re-enable via
zM
or:set foldlevel=0
.
- Update plugins (thanks to John Szakmeister):
- textobj-user
- scriptease
- vim-repeat
- tcomment_vim
- Rewrite ~/.vim/buildtool, a tool for building Vim from source. Now written in
Python, buildtool is easier to use and more flexible.
Run
~/.vim/buildtool --help
for details. - Upgrade CtrlP plugin to version 2018-06-27.
- Upgrade cpsm plugin to version 2018-02-01.
Reduce Gvim default number of screen lines from 45 to 40 because 45 lines doesn't quite fit on some screens, causing Gvim to reduce the lines. For some reason, this prevents Gvim from properly restoring the number of screen lines as saved in a session file with
mksession
. Ensuring that Gvim doesn't need to reducelines
allows Gvim to properly restore the saved window geometry from a session file.Make <Space>-based mappings for things requiring
CTRL-q
. This avoids the need to fix the XON/XOFF problem when using Vim in a terminal. The replacement mappings are documented throughout notes.txt; briefly, they are:<C-q><C-q> Toggle QuickFix window <Space>qq Toggle QuickFix window <C-q><C-l> Toggle Location List window <Space>ql Toggle Location List window <C-q><C-h> Toggle help window <Space>qh Toggle help window <C-q><C-p> Toggle project window <Space>qp Toggle project window <C-q><C-t> Toggle tagbar window <Space>qt Toggle tagbar window <C-p><C-q> CtrlPQuickfix <C-q>q CtrlPQuickfix
Change default from Powerline to Airline. This change of default fell through the cracks (support for Airline was added to Vimfiles over two years ago!). To use Powerline instead of Airline, place the following line in your
VIMRC_VARS
file:let g:EnablePowerline = 1
Update Fixkey plugin to version 0.3.9. This is a documentation-only fix clarifying that Konsole need not be reconfigured just for the <S-F1> through <S-F4> keys to work.
- Similar to the mapping for <F12>, add a new mapping for <F11> to signal the
fifo
.fifo2
in the current working directory. See the "Building and Running" section of:help notes
for details. - Add support for Z80 assembly language via the vim-z80 plugin.
- Check for the existence of the relatively recently added
getwininfo()
function in addition towin_getid()
to avoid errors on Vim 7.4 (thanks to Jonathan Shuman). - Fix
:Redir END
to:set more
instead of:set nomore
. - Remove unused ctrlp matchers (ctrlp-py-matcher, ctrlp-cmatcher, abbrev-matcher).
- Make tagbar leave tag order unsorted so it matches the order of declaration in
files (rather than being sorted alphabetically). Pressing
s
will still toggle sorting on and off; this only affects the startup default.
- Move
omni#cpp#utils#IsCursorInCommentOrString()
work-around from~/.vim/vimrc
into~/.vim/autoload/omni/cpp/utils.vim
to avoid errorE746: Function name does not match script file name:
on Fedora 27.
- Setup Ruby for two-space indentation to match community standards.
- Add "Rubocop" as Syntastic checker for Ruby.
- Update tagbar plugin to version 2017-10-18.
- Fix
~/.vim/buildtool
syntax for detecting GNU tar.
Change
<F12>
mapping to use:silent! wall
so that it works even when unnamed (and thus unwritable) buffers are present.Add some new 'C' snippets:
st
-->size_t
sst
-->ssize_t
un
-->unsigned
- Pressing '*' on Vim versions prior to 7.4.243 could lead to the error 'E118: Too many arguments for function: getreg' because support for using lists for register values in getreg() and setreg() was not completed until 7.4.243. As a work-around, the string-flavored getreg() and setreg() are now used on these older versions of Vim.
- Customize the highlighting for CursorLineNr in the szakdark color scheme (thanks to John Szakmeister).
- Upgrade vim-togglecursor to version 0.5.2, which avoids some extra work when Vim supports the t_SR option (thanks to John Szakmeister).
- Fix ~/.vim/buildtool to explicitly set file permissions in generated tarball, for systems where umask is unsuitable (e.g., umask=007); also detect use of GNU tar and avoid GNU-specific switches for non-GNU implementations such as found on OS X (thanks to Dave Shepherd).
- Update the IsQuickFixWin() function to work with Vim 8.0 (thanks for John Szakmeister).
- Update airline to v2017-05-08 (thanks to John Szakmeister).
- Update markdown2ctags to v0.1.3 (thanks to John Szakmeister). This fixes a bug when nesting sections that were more than one-level apart from the current section (putting h4's in h2's).
- Fix visual-mode
Y
mapping to handle blank lines.Y
maps to DedentParagraph() which removes common prefixes of whitespace from the selected lines before yanking. This function now ignores empty lines when computing the common whitespace prefix.
- Add notes for building on Fedora 23+. As of Fedora 23, all RPMs are
"hardened" by default. When building with
--enable-rubyinterp
, Vim uses hardened linker settings provided by the Fedora-supplied ruby libraries without using the necessary hardened compiler settings, causing the./configure
operation to fail.
- Update togglecursor to version 0.5.1 to support OS X's native Terminal in Sierra or better.
- Ctrlp defaults to a maximum 10,000 files which has proved to be insufficient, so the limit has been raised to Jim's suggested value because, as he pointed out, 640K ought to be enough for anyone.
- Update fontsize plugin to version 0.4.1 to support GTK3-based GUI. Change default font setting logic to handle GTK3 as well.
- Update the Grepper plugin to version 2016-11-11. This fixes problems with hanging for certain search tools (ag, ack, rg, ...) that try to detect whether stdin is a pipe, and if so, search the data on stdin.
- Allow the Git rebase actions to be repeated with dot (thanks to John Szakmeister). See the SetupRebaseMappings() function in vimrc for details.
Extend the VIMUSERFILES idea to allow three kinds of override directories. Environment variables now allow these configurable directories (in order of increasing priority):
- VIMLOCALFILES: location-specific settings (e.g., for your workgroup)
- VIMUSERFILES: per-user settings usable at all locations
- VIMUSERLOCALFILES: per-user location-specific settings
See
:help notes_overrides
for more details.
- Add support for the Rust programming language.
- Add simple file completion for :G, :Findx, :FFX, :FFG.
- Update rst2ctags to version 0.1.5, which uses python2 in the shebang line and ensures the heading characters are homogeneous (thanks to John Szakmeister).
- Upgrade to Fixkey version 0.3.8, which works around a problem with TERM=tmux wherein the <Home> and <End> keys weren't working correctly due to conflicts with Vim's incorrectly detected mouse settings.
Make :Copen and :Lopen always switch to the QuickFix/Location list, even if the window is already open.
Add Grepper plugin.
:help grepper
for details. For now, using a forked version with better quoting/escaping. Implement :Findx, :FFX, :FFG in terms of :Grepper.BREAKING CHANGE: Reorganize some search-related functions and commands to make them easier to discover (via
:Search<tab>
, for example) and to base them on the Grepper plugin::LmcSearch --> :SearchLmc :UmcSearch --> :SearchUmc :UnderscoreSearch --> :UnderscoreUmc :WordSearch --> :SearchWord :LmcGrep --> :GrepLmc LmcPattern() --> SearchLmcPattern() UmcPattern() --> SearchUmcPattern() UnderscorePattern() --> SearchUnderscorePattern() :LmcGrepPattern --> :GrepLmcPattern :UmcGrepPattern --> :GrepUmcPattern :UnderscoreGrepPattern --> :GrepUnderscorePattern
Also add the following:
:GrepUmc :GrepUnderscore
- Mapping <CR> didn't turn out to be convenient enough, so it's no longer mapped to easymotion-s2.
Use "Hack" as the preferred font (if installed). Most systems don't have it installed by default, so mostly this won't be noticeable unless you've gone out of your way to install Hack. Notably, Hack includes font patches to support Powerline symbols (used by Airline as well), making Vim's status line look a bit better.
Remove <Space>l mapping for easymotion-sol-bd-jk, and replace with three mappings beginning with <Space>j ("j" for "jump"):
<Space>jj easymotion-s <Space>jJ easymotion-s2 <Space>jl easymotion-sol-bd-jk
Also map <CR> to be a more convenient alias for easymotion-s2.
Add new commands :Findx, :FFG, :FFX to integrate the findx utility.
Map normal-mode
Y
to mean "yank to end of line" (equivalent toy$
), for consistency with most other uppercase variants (e.g.,D
,C
, ...). To yank a single line, useyy
.Map visual-mode "Y" to perform a yank-and-dedent operation on the selected text, where the largest common whitespace prefix is removed from all lines. For now, the destination register is hard-coded to be
"0
(along with both clipboard-related registers"+
and"*
). This is convenient when yanking shell commands to be pasted into a terminal.
- Use two-space indentation and disable spell checking for YAML files.
- Disable auto-indentation on certain keypresses in YAML files (most importantly
for
:
and#
).
- Add better support for Airline fonts (thanks to John Szakmeister). Redefine the AirlineCustomizeSymbols command in your vimrc-after file to change the airline symbol definitions.
- Upgrade incsearch plugin to version 2016-05-06.
- Add incsearch-fuzzy plugin; like incsearch with fuzzy pattern support.
- Add some functions in vimrc to help locate script-local symbols (GetSymbol(), GetSID(), GetScript(), ScriptPaths()).
- Add support for JSON files.
- Detect
*.vader
as Vader test files.
- Add Vader plugin version 2016-05-22 for Vim unit testing.
- Port vimrc unit tests to Vader.
- Remove UnitTest plugin (Vader has replaced its function).
- Upgrade Fugitive plugin to version 2016-05-11.
- Fix :DiffClose to use new :DiffOff command that understands how to restore Fugitive's diff-restoration logic. Now 'cursorbind' is no longer left set on Fugitive working-copy windows after :OneWindow command (bound to CTRL-w o).
- Have CtrlP plugin follow symlinks.
- Work around Vim prior to 7.4.725 in SetReg() function. On older Vim, invoking setreg() with an empty list would generate an internal error.
Add experimental support for CtrlP matcher plugins:
cpsm:
let g:ctrlp_match_func = {'match': 'cpsm#CtrlPMatch'} let g:cpsm_query_inverting_delimiter = ' '
ctrlp-py-matcher:
let g:ctrlp_match_func = {'match': 'pymatcher#PyMatch'}
ctrlp-cmatcher:
let g:ctrlp_match_func = {'match' : 'matcher#cmatch'}
abbrev-matcher:
let g:ctrlp_match_func = {'match': 'ctrlp#abbrev_matcher#match'}
None of these are enabled by default during their evaluation phase.
- Upgrade airline to version 2016-05-13 and airline-themes to version 2016-05-10. Airline now supports suppression of empty sections.
- Patch airline to support disabling whitespace checks on a per-buffer basis, and disable these checks for QuickFix windows.
- Preserve register "0 (the most recent yank) for
#
mapping (which launches a :G operation to search using Ag or Ack). - Upgrade BufExplorer to version 2016-04-16.
- Add new mappings for QuickFix and Location List windows. See
:help notes_quickfix_keys
for details.
- Remove mapping of
svn-prop*.tmp
to filetypesvn
. That filetype is intended only for Subversion commit messages, and it doesn't play well when editing other properites likesvn:externals
andsvn:ignore
. When usingsvn propset --revprop svn:log ...
, use:setf svn
to turn on thesvn
filetype.
- Fix missing
noautocmd
insideIsQuickFixWin()
, which can cause a autocommand recursion issues in some cases.
- On <F4>/<s-F4>, leave Quickfix window closed if already closed.
- :Copen/:Lopen now do nothing if the QuickFix/Location List window is already open, which preserves the existing window height.
- Add
pkgexp
to 'wildignore' setting.
- Add filetype support for Scheme (
*.scm
) files.
- Use
:G
for use with the#
search mapping (rather than boiling it down to either:Ack!
or:Ag!
) to allow easier location of previous invocations in the command history.
- Update to the new method that UltiSnips uses to disable itself. Without this change, UltiSnips warns about missing Python integration.
- Fix broken logic for disabling airline (thanks to Mike Haig).
- Add experimental airline plugin.
- Update fixkey to version 0.3.7. This corrects a problem with Fedora's patched version of Vim, allowing F1 to F4 to work correctly in the terminal.
- Update tcomment plugin to version 2016-02-28.
- Update Ultisnips plugin to version 2016-02-13.
- Update Snippets examples to version 2016-02-19.
- Update Bufkill plugin to version 2015-09-24.
- Update Easymotion plugin to version 2016-02-15.
- Update quickfix-reflector plugin to version 2015-11-21. This fixes an issue with modifying long lines in the QuickFix window (around 181 characters long).
- Update signature plugin to version 2016-02-21. This fixes some instances of signs being left behind after deletion of the associated mark.
- Update CtrlP plugin to version 2016-01-17.
- Update bufexplorer plugin to version 2015-10-02.
- Update buildtool to pull from Git repository instead of Mercurial.
- Update localvimrc to version 2015-10-02 (thanks to John Szakmeister).
- Update to vim-fixkey v0.3.6, bringing support for TERM=tmux (for tmux v2.1 and beyond). Useful for italic support under tmux.
- Update to vim-fontsize v0.4.0, bringing the ability to configure the "font mode" time-out value independently from Vim's 'timeout'/'timeoutlen' settings.
- Patch Powerline to work around buggy behavior (thanks to John Szakmeister). This fixes a problem where BRANCH and LINE symbols would eventually become ["].
- Update vim-session plugin to version 2.13 (thanks to John Szakmeister). This new version allows persisting of 'guifont' to be disabled. Now changes to 'guifont' in a configuration file will not be overwritten when a session is reloaded.
- Update bufkill plugin to version 0.12 (thanks to John Szakmeister).
Update to v0.5.0 of vim-togglecursor (thanks to John Szakmeister). This adds support for enabling cursor changing under Neovim, VTE3 support, along with better XTerm support. It also allows you to force the particular kind of escape sequence used, if your terminal is not automatically detected.
Note: the new versios does change the default cursors to be blinking to better match gvim's behavior.
Vim's syntax file for shell scripts has grown a mis-feature of adding "." to 'iskeyword'. This breaks editing expectations for an extremely rare use case in certain dialects of shell script. We now set "g:sh_noisk" to disable the addition of ".".
Remove Signature maps that hide valuable Vim built-in functionality for jumping to the start or end of recent yanks or changes:
'[, '], `[, and `]
This is done via assignment to g:SignatureMap in vimrc. To restore this functionality, unlet g:SignatureMap in your vimrc-after.vim file.
Improve automatic period insertion behavior in snippets like
@todo
.
- Adjust :DiffOrig command to work correctly if the user sets the 'splitright' option (which puts the focus on the rightmost window after a vertical split).
- Tighten the regular expression for ignoring Syntastic warnings about unused imports from Python's "future" package; package names must now be found only on word boundaries.
- Turn off Syntastic's automatic opening of the Location list. It causes
problems when doing a quick edit on a file with errors, as
:wq
causes the Location list to pop up and prevent exiting Vim. The Location list may always be toggled via CTRL-Q CTRL-L. Because the Location list is no longer opened automatically, <F4>/<s-F4> have changed to prioritize the use of the Location list when both it and the QuickFix list are closed (or both open); as before, if one list is open and the other is closed, the open window takes precedence. Syntastic will still automatically close the Location list when it becomes empty. - Use CTRL-SHIFT-PageUp/PageDown to move tab pages (in analogy to the built-in CTRL-PageUp/PageDown that switch tabs). This works only in Gvim, not in console Vim.
- Remove most EasyMotion mappings that in practice didn't get used. Map <Space>l to (easymotion-bd-jk) to navigate to lines.
- Ignore Syntastic warnings about unused imports from Python's "future" package.
- Default to ":SyntasticBufferSetup strict" for Python files. For details on controlling this via localvimrc files, see :help notes_syntastic.
- When pressing <F4>/<s-F4> to traverse the QuickFix or Location list, detect when it has run off the end/beginning of the list and use :cc/:ll to jump to the last/first entry; this allows these keys to be useful when there is only one entry in the list to begin with (such as when there is a single Syntastic error in the Location list).
Enable UltiSnips if either Python 2 or Python 3 is available (previously, it was enabled only for Python 2).
Use the system clipboard in addition to the X11 primary selection for the unnamed register. Yanks will go into both the clipboard and the primary selection; puts will come from the clipboard. To use the primary selection directly, use <C-S-Insert> or reference the
*
register explicitly, e.g.:"*p
This provides smoother integration with the bulk of applications that use the clipboard instead of the primary selection.
Remove some extra GUI features that take up screen space unnecessarily. Now disabled are:
- Scrollbars.
- GUI menu.
To learn how to re-enable these features, see :help notes_guioptions.
- Update incsearch to version 2015-05-04. Also disable activation if Vim is too old (before 7.3.32), fixing problems on CentOS 6 with Vim 7.2.x.
- Update to fontsize v0.3.4 (now loads plugin only if GUI is running).
- Unmap/re-map 'ds' for BufExplorer buffers. This eliminates the delay when using 'd' in BufExplorer to delete a buffer.
- Add Quickfix-reflector plugin, allowing the user to edit the results of a QuickFix-based search and then save the QuickFix buffer itself, propagating the changes back to the original files. See :help notes-quickfix-reflector for details.
- Update to headerguard v0.2.2 (adds feature to use C++-style comments on the "#endif" line).
- Preserve "endwise" plugin hook of insert-mode <CR> when re-sourcing vimrc. Previously, endwise's hook to this insert-mode mapping would be clobbered by the one in vimrc on a second :source of vimrc.
- Stop squelching Syntastic warnings globally. Use :SyntasticBufferSetup in a localvimrc file to adjust Syntastic behavior on a per-directory basis.
- Chain invocations of :Ack through Python where possible to work around problems with quote handling in Strawberry Perl and ActivePerl on Windows.
- Default to 79-column margin for Python for PEP8 compliance. When using
:SyntasticBufferSetup lax
, however, fall back to 80-column margins. - Incorporated vim-python-pep8-indent plugin for improved Python indentation support for PEP8 compliance.
- Removed space after C snippets for fixed-width integers (int8_t and friends), as for several use cases the space is incorrect and must be deleted manually (which feels like correcting a mistake in the snippet). It simplifies the mental model of the snippet, which is can now be viewed as an abbreviation for the corresponding type. To restore the old behavior in the event that adjusting to the new snippets proves difficult, these snippets can be overridden by per-user snippets that contain the space.
- Change
:SyntasticSetup strict/strict_except_case
for Python to avoid pylint (which is very strict). Add new stylevery_strict
to enable full-bore pylint-based checking. Set default Python checkers to just 'python' and 'flake8'. - Restore automatic opening of the location list when Syntastic discovers errors
by changing g:syntastic_auto_loc_list from 2 back to 1. Syntastic
internally uses autocmds to toggle the location list. When the location
list is focused and :lclose is issued, the associated buffer is re-entered
and Syntastic sees that the location list should be open, so it re-opens
it. Now CTRL-Q CTRL-L uses
:noautocmd lclose
to close the location list, preventing Syntastic from re-opening it. - Add folding support for QuickFix and Location List windows. See :help FoldQuickFixFiles and :help FoldQuickFixDirs for details.
- Remove leftover files from old EnhancedCommentify plugin (thanks to Mike Haig).
- Disable custom QuickFix mappings for Ack and Ag plugins. They stop working after the QuickFix window is closed and re-opened, and they don't work generically for all uses of QuickFix.
- Add a number of features in support of finding and renaming identifiers of various naming conventions. See :help notes_identifier_case for details on :LmcToUnderscore and friends.
- Stop automatically opening the location list when Syntastic discovers errors by changing g:syntastic_auto_loc_list from 1 to 2. Syntastic somehow interferes with the proper operation of toggling the location list via CTRL-Q CTRL-L unless the above change is made. Hopefully eventually we'll figure out what's causing that interaction such that we can re-enable automatic opening of the list. Until then, you may manually open the location list via CTRL-Q CTRL-L.
- Add many Syntastic-related commands; see :help notes_syntastic for details.
- Improve font size logic for OS/X (thanks for John Szakmeister). DPI scaling is now done via the new AdjustBaseFontSize() function.
- Treat Coverage configuration file (
.coveragerc
) as a config file (thanks to John Szakmeister).
- Update Syntastic plugin to version 2015-03-19.
Update UltiSnips to version 2015-03-05. This version supports the snippet flag "m" which removes end-of-line whitespace on all snippet lines. This keeps the indentation of empty snippet lines from acquiring spurious extra whitespace. ~/.vim/pylib/sniputil.py has been adjusted to add the "m" flag for any snippet containing a blank line; other snippets are left as-is, allowing snippets such as "int8_t " to retain their trailing whitespace without modification to their definitions. This sniputil.py feature will not take effect until the .snippets files are regenerated.
/.vim/UltiSnips/*.snippets
have already been regenerated as follows:cd ~/.vim/UltiSnips touch *.py make
- Update rst2ctags to version v0.1.4. rst2ctags now works with headings that contain UTF-8 characters (thanks to John Szakmeister).
- Update markdown2ctags to v0.1.2 (thanks to John Szakmeister). This fixes an issue where comments inside GitHub Flavored Markdown code blocks would be seen as section headers.
- Remove Startify plugin. It has not proved valuable to new users while managing to be irritating to power users.
- Escape the pipe character when using <F3> to search for a literal string.
- Change "#" to use double-quotes on Windows when constructing the proper arguments for :Ack/:Ag.
- Update the Syntastic plugin to version 2015-01-04 (thanks to John Szakmeister). This fixes an issue where wildignore was affecting calls to expand(), glob(), and globpath() causing some checkers to fail in interesting ways (javac, for example).
- For determining the user's login name, use $USERNAME on Windows instead of $USER (thanks to John Szakmeister).
- Use executable("ag") instead of exepath("ag") for compatibility with older Vim.
- Add single-file implementation of "ack" script and use it for the :Ack command. This ensures that all systems with Perl installed will have Ack functionality.
- Add Ack plugin for searching using the 'ack' utility. See :help notes_ack for details.
- Add Ag plugin for searching using the 'ag' utility. See :help notes_ag for details.
- Add '#' to search for the word under the cursor (in Normal mode) or the current selection (in Visual mode) using :Ag! (if available) or :Ack! (otherwise).
- Add :G to search using :Ag! (if available) or :Ack! (otherwise).
- Use automatic period for certain snippets (e.g., "func" for function definitions). Automatically provides period to end the sentence unless a period or exclamation point is already provided.
- Enable UltiSnips by default only when Python is built into Vim.
- Support <Leader>of for snippets files (thanks to Mike Haig).
- Add C snippets for static function (sfunc), function prototype (Func), and enumerations (enum) (thanks to Mike Haig).
- Use 79-character comment banners.
- Add EasyMotion plugin. This adds several new kinds of motions. See :help notes_easymotion for details.
- Add <Space><Space> as an additional mapping to invoke BufMRU mode. This is aimed at preserving the muscle memory of the original single-<Space> mapping while retaining the use of <Space> as a leader key.
- BREAKING CHANGE: Change BufMRU key from <Space> to <C-6>. The space key is too valuable to be dedicated to this single function. Note that <C-6> is the same as <C-^>, so you don't have to press the shift key to invoke BufMRU mode. This is also the same as Vim's keystroke to toggle between buffers, so it's a natural fit for this plugin.
- BREAKING CHANGE: Change key mapping of recently added "sneak" plugin. The
default mappings were hard to remember, since they were different in normal,
visual, and operator-pending modes. Now <Space>s sneaks forward and <Space>S
sneaks backward in all modes. See
:help notes_sneak
for more details. - Fix Easy-Align mapping prefix to be <Leader>a instead of a.
- Detect salt server files (thanks to John Szakmeister).
- Add Easy-Align plugin. Visually select a group of lines, then press a to begin alignment. Press a delimiter key (such as <Space>, =, comma, etc.) to align on that delimiter. See :help notes_easyalign for more details.
- BREAKING CHANGE: Remove Align plugin (replaced by Easy-Align).
- Change indentation for backslash-continuations in vimscript to be 8 characters instead of 12.
- Tighten up diff highlighting in emails to avoid mistakenly highlighting bulleted lists that start with hyphens.
- Synchronize email syntax highlighting from start to keep highlighting in-sync for lengthy patches.
- Update rst2ctags to version 0.1.3. This updates heading detection to include all of the recommended characters that can be used to underline headings (thanks to John Szakmeister).
- Add
EditSnippets
command (thanks to John Szakmeister). - During a Git rebase operation, the following mappings are now available
(thanks to John Szakmeister):
- <Leader><Leader>e Change rebase action to "edit"
- <Leader><Leader>f Change rebase action to "fixup"
- <Leader><Leader>p Change rebase action to "pick"
- <Leader><Leader>r Change rebase action to "reword"
- <Leader><Leader>s Change rebase action to "squash"
- Setup 'shellpipe' to keep Vim from hiding failures (thanks to John Szakmeister).
- Synchronize python and shell syntax highlighting from start-of-file to avoid highlighting errors (thanks to John Szakmeister).
- Highlight diffs in emails (thanks to John Szakmeister).
- Reuse the current window when opening a new file with CtrlP (thanks to John Szakmeister). Try this via CTRL-p CTRL-p (or any other file-based CtrlP operation), type a filename that doesn't exist, then press CTRL-y to create that file.
- Disable Powerline support for terminals with eight or fewer colors (thanks to John Szakmeister).
- Treat .syntastic_c_config files as vim files (thanks to John Szakmeister).
- Add AddTags() function for use in
.lvimrc
files (thanks to John Szakmeister).
- Update "lusty-juggler" plugin to version 2014-11-15 (0e73d8d) which includes John Szakmeister's fix.
- Update "lusty-explorer" plugin to version 2014-11-15 (0e73d8d).
- Add "sneak" plugin, bringing new "s{char}{char}" motion and "z{char}{char}"
operator. Pressing "s" followed by two consecutive characters in your file to
move to that location. See
:help notes_sneak
for more details. - Add "incsearch" plugin. Now "/" and "?" highlight all matches incrementally
while typing. See
:help notes_incsearch
for more details. - Update "surround" plugin to version 2014-07-26.
- Prevent the highly irritating problem wherein the cursor jumps back to the previously saved position when the user scrolls the inactive window with the mouse wheel and then clicks in the window.
- Make localvimrc decisions persistent only for uppercase answers (Y/N/A). This way, you can provide a one-time approval for the given .lvimrc.
- Don't run .lvimrc files in a sandbox. The user must approve the use of any given .lvimrc file, and he must re-approve it whenever the contents of the .lvimrc file changes; therefore, it's safe to run them outside of the :sandbox command. In particular, this permits using things like :HighlightOff inside a .lvimrc.
- Fix bad interaction between the LustyJuggler and endwise plugins (thanks to John Szakmeister).
- Change the Sphinx syntax checker to use HTML output instead of text. This fixes some length slow-downs when saving .rst files that are part of a Sphinx-based project.
Update CtrlP plugin to version 2014-10-13, switching from the unmaintained version from the original author (who seems to have fallen off the grid).
Set g:ctrlp_switch_buffer empty to prevent CtrlP from jumping to other windows. Now selected buffers will open in the current window, even if the buffer is already open in another window.
Adjust snippets for Makefiles.
Update endwise plugin to version 2014-10-01.
Update signature plugin to 2014-11-03. This makes marks work like they are supposed to work in Vim, which is that setting a mark on a line via
mx
does not toggle the mark. To delete markx
, usedmx
. This is controlled via these two variables in vimrc (they may be overridden in your vimrc-after if you'd like signature's toggling-mark behavior back):" Disable toggling of marks and markers. let g:SignatureForceMarkPlacement = 1 let g:SignatureForceMarkerPlacement = 1
- Make :L, :L2, etc., account for the presence of extra columns in the gutter (for line numbers and for diff-mode indicators).
- Add signature plugin to display Vim :marks. Now, after setting a mark (such
as with
ma
), a Vim "sign" will be shown in the gutter to show the mark's location. - Enable the use of the "colorcolumn" feature. When 'textwidth' is non-zero, a vertical colored line will be displayed one column beyond 'textwidth' to help visually track the margin.
- Set szakdark's ColorColumn color to be a muted dark gray.
- Update bufexplorer plugin to 7.4.5 (the nnoremap patch has been merged).
- Adjust :L, :L2, etc., to use 82-column window widths by default, to accommodate the use of Vim's :signs (which take two extra columns). See :help notes for details on configuring the window width.
- Break undo for insert-mode CTRL-u and CTRL-w; otherwise, an undo will just remove all text from the current insert operation instead of bringing back the deleted text.
- Patch BufExplorer to define mappings only for normal mode. The overly broad "noremap" command used previously created undesirable select-mode mappings for "be" and friends.
- Unmap some stray undesirable select-mode mappings that appeared after a plugin upgrade.
- Turn off UltiSnips's feature of unmapping select-mode mappings. It ought to :sunmap only mappings that start with a printable character, but it unmaps too much (e.g., it removes select-mode <M-z>).
- Update BufExplorer to version 7.4.4 (no significant changes; updated to prepare for future patches).
- Map <M-u><M-l> to list snippets matching trigger at cursor. This is useful for Console Vim, where the default <C-Tab> mapping doesn't work.
- Map <M-u><Tab> to the UltiSnips "jump forward" action. <Tab> is overloaded to expand a snippet if possible, and to jump forward if no trigger is found. When this is not desired, <M-u><Tab> can be used to force the jump action instead of expanding the trigger (perhaps after undoing the erroneous snippet expansion via <M-u><M-u> or <M-z>).
- Break undo when triggering a snippet, so that if you undo after expanding a snippet, only the snippet expansion is undone.
- Upgrade UltiSnips to version 2014-09-13.
- Improve <M-z> (undo) mapping to stay in the same mode from which is was invoked. Add <M-u><M-u> mapping as an alias, as it's expected to be easier to type and remember in some cases.
- Automatically shorten filenames in QuickFix window. Commands like :Regrep leave absolute paths in the QuickFix results for files not already open in Vim. A new autocmd now invokes ShortenFilenames() to perform Vim's filename shortening algorithm (such as converting to a relative path when the result is contained within the current working directory).
- Add documentation for colorscheme detection and for configuring ssh to propagate the COLORFGBG environment variable to aid background color detection accuracy.
Provide support for extremely early per-user configuration of variables via the new
VIMRC_VARS
script file. Most users won't need this; it comes in handy for disabling bundles before the main vimrc activates them all.BREAKING CHANGE: To better support the use of bundles in vimrc-before.vim scripts, all bundles are activated now before sourcing this script. In the off chance that you were setting g:pathogen_disabled in your vimrc-before.vim script, you'll need to move this definition to a vimrc-vars.vim file.
With this change, all supported colorschemes are available for use directly in the vimrc-before.vim script; tricks with pathogen#surround() are no longer required.
Add some new colorschemes: - badwolf (dark) - base16-* (collection of colorschemes) - gruvbox (dark) - hemisu (dark) - hybrid (dark) - monokai (dark) - wombat256i (dark)
Update grep plugin to version 1.11.
- Disable Startify for Vim versions prior to 7.3.633. Startify hangs on Windows with Vim 7.3.46 on some machines, but works with 7.3.633. Since I can't replicate it with Vim 7.3.46 on another machine, its easier to just disable Startify as a work-around.
- Add "Startify" plugin to show recently used files in custom startup screen, with the side benefit of displaying a reminder about ':help notes' and ':help localnotes'.
- Mention that ":help localnotes" provides access to any "local" notes (covering vimfiles additions stored in ~/.vim/local/).
- When Vim can be trusted, vimfiles will now honor its light-background
detection choice. Vim can't really detect the background color properly in
many cases (especially when running in a console). For example, it loses
detection accuracy after ssh'ing to another machine and after executing
su -
orsudo -i
. For this reason, vimfiles used to unconditionally force a dark-background colorscheme (unless the user preselects a preferred colorscheme using the VIMUSER mechanism). But in the special case that the COLORFGBG environment variable is set accurately, console Vim can correctly detect the background color. Not all terminal emulators set this variable, but rxvt and KDE's konsole do (but sadly, xterm does not). This variable is lost when executingsu -
orsudo -i
, and when ssh'ing to another machine (unless the ssh client and server settings are changed to propagate the variable to the server). In the cases where this variable has been set, vimfiles will now honor it, so rxvt and konsole terminals that use a light background will work out-of-the-box, at least until the user loses the COLORFGBG definition for some reason (such as the above scenarios).
Fix a problem with :Highlight seeming to be turned off by default on older Vim versions. The newly refactored :Highlight command was tested on a recent Vim; that version of Vim allowed syntax groups defined in a FileType autocmd to survive, such that things worked as expected. Older versions of Vim do not seem to preserve syntax groups defined in the FileType autocmd, so the checks turned on by the :Highlight command appeared to be off by default. As a work-around, the :HighlightOn command may be issued manually to re-apply the groups after a file has been loaded.
The change in Vim occurred somewhere between versions 7.4.179 and 7.4.410.
- Eliminate invalid
l:
prefix on a function name. This was apparently always illegal, but Vim used to permit it.
BREAKING CHANGE: Rename Foldsearch, Foldcomments, and Toascii to FoldSearch, FoldComments, and ToAscii for uniformity with other commands.
When embedding languages into
.rst
files for syntax highlighting, don't allow the languages to change 'iskeyword'. Previously, thesh
language was adding a period to 'iskeyword'.Improved interface for :Highlight command:
- New g:HighlightEnabled variable to control the default disposition of highlighting. In vimrc, this is set to 1, but it may be overridden in a vimrc-after file.
- New :HighlightOn and :HighlightOff commands that toggle highlighting for a single buffer.
It's recommended to avoid invoking ":Highlight no*" to disable highlighting, as that makes it difficult to restore highlighting of the items configured for the filetype; instead, use a combination of g:HighlightEnabled and :HighlightOn/:HighlightOff.
When pressing <CR> in insert mode, trailing whitespace will be removed from the previous line. So, with your cursor on the "X" below:
Place cursor on X and press Enter
Pressing Enter will remove the trailing space from "Place cursor on ". This helps avoid leaving trailing whitespace in a file.
See :help notes for ideas to intentionally preserve whitespace when pressing <Enter>.
- Add "unittest" plugin.
- Add routines for path manipulation in vimrc.
- Add unit tests for vimrc in test/test_vimrc.vim.
- Add RtpInherit() to allow inheriting from another user's configuration.
- Update fixkey to version 0.3.5 (supports TERM=screen-it and similar).
- Cause cpp snippets to inherit c snippet (thanks to John Szakmeister).
- Upgrade fugitive to version 2014-07-07. Incorporates a fix to ensure fugitive disables diff-mode only when it caused diff-mode in the first place.
- Upgrade fixkey to version 0.3.4. This includes a changed default for 'ttimeoutlen' (which won't impact much, as 5 ms is already set in vimrc), and documentation of an inherent problem using Vim macros to play back ambiguous keycodes.
- Upgrade textobj-user to version 0.6.3 and textobj-function to version 0.4.0. This fixes problems with newer versions of Vim. John Szakmeister worked with the maintainer of these plugins to get the needed corrections in-place.
- Upgrade to UltiSnips 3.0 (thanks to John Szakmeister). The "sample" snippets that used to ship with UltiSnips were removed in UltiSnips 3.0 and repackaged with the "vim-snippets" project. In addition, the "clearsnippets" functionality in UltiSnips 3.0 is no longer very useful, since snippet priority based on runtimepath ordering is no longer a feature. Therefore, these sample snippets have been imported for reference into vimfiles/optional-bundle/snippets, with instructions at :help notes_snippets for activating them.
- Upgrade fixkey plugin to 0.3.3 (fixes PuTTY SCO keymap for F1 through F12 for console Vim).
- Upgrade fontsize plugin to 0.3.3 (adds support for [count]).
- Add John Szakmeister's work-around to define UltiSnips_FileTypeChanged when UltiSnips is disabled.
- Upgraded togglecursor to 0.2.0.
- Change ttimeoutlen to 5 ms to avoid Console vim errors when pressing <Esc> followed too closely by a letter (which look too much like the terminal's encoding for Alt+letter).
- Add support for Lua and Moonscript languages.
- Update rst2ctags to v0.1.2 and markdown2ctags to v0.1.1. This fixes some issues with having backslash characters in headings (thanks for John Szakmeister for these updates).
- Add g:EnableUltiSnips to allow UltiSnips to be disabled. This helps with NeoVim, a Vim fork that doesn't support Python bindings yet.
- Fail gracefully when setting the 'j' flag in 'formatoptions' on Vim older than 7.3.541 (when this flag was first introduced).
Consolidate 'formatoptions' settings for filetypes into shared setup functions. SetupCommon(), SetupText(), and SetupSource() now collaborate to provide textfile-like and sourcecode-like format settings that should be usable unchanged across most types of files.
In addition, the flag 'n' is now included in all filetypes, so that the reformatting operator "gq" (also mapped to Alt-Q) now properly preserves bulleted and numbered items. For example, this text:
Some text - with a bulleted item - and another one
Will reformat (using Alt-Q) to the following text:
Some text - with a bulleted item - and another one
Extend 'formatlistpat' to view a header's underline as it would a list item. This hack prevents Vim from reformatting underlined headers. So, for example, pressing Alt-Q when on the below text leaves it unchanged:
An underlined header ====================
Unfortunately, it doesn't work for over/under headers. This text:
================= Over/under header =================
will be reformatted badly to this:
================= Over/under header =================
But since underlined headers are the most common, this is better than nothing, and it's much easier to use Vim's built-in formatting logic than to write something custom.
- Augment Python Path with all "pylib" directories in Vim runtimepath. Migrate "sniputil" to ~/.vim/pypath. See "Python Path" section in notes.txt for more details.
- Incorporate more uses of John Szakmeister's "betterVisual()" support for UltiSnips snippets.
- Start at the top of the buffer when doing a
git rebase -i
- Moved fswitch to a bundle and updated to 0.9.5.
- Add John Szakmeister's markdown2ctags tool to support Markdown files in tagbar.
Default to Python version 2 syntax highlighting with the newly upgraded Python syntax file. This is done by setting g:python_2_syntax to 1. It may be overridden using b:python_2_syntax on a per-buffer basis, or globally by setting g:python_2_syntax from "vimrc_before.vim" or "vimrc_after.vim".
Also, :Python2Syntax and :Python3Syntax allow switching dynamically between the two syntax highlighting schemes.
- Add :VisualHelp to perform :help on the visual selection. In visual mode, this may be invoked via <F1>, <C-Q>h, or <C-Q><C-H>.
- Add "Characterize" plugin. Now typing
ga
shows more information about the character under the cursor. - Update the "szakdark" colorscheme:
- Provide better Error highlighting.
- Ensure that the background is cleared for pythonDot.
- Tone down the indent guides so they're less distracting.
- Make the git commit summary line standout a little more.
- Add :OneWindow command to avoid "Already only one window" error messages. Map <C-W><C-O> and <C-W>o to use it.
- :DiffOrig now closes other windows before starting diff.
- Add :DiffClose to close all diff windows except current window. Perform this as first step of :OneWindow.
- Add :Diff command to initiate a diff between current window and the "next" window or a file given as an argument.
- Add support for "##" comments in makefiles.
- Update vim-eunuch to version 2013-03-02.
- Convert from use of glob(expr, nosuf, list) to older glob(expr, nosuf) for compatibility with older Vim. Apparently the third argument to glob() was added in Vim 7.3.465.
Convert from Blacklisting of font families that don't support Unicode Symbols properly to having a whitelist of known-good font families, since Powerline looks very bad when using Powerlines_symbols == "unicode" with a font family that doesn't support the symbols. The variable g:GoodUnicodeSymbolFontFamilyPatterns may now be set from a
VIMRC_BEFORE
script to extend the list of font families that have known-good support for Unicode Powerline symbols. See vimrc for more details.Add a way to detect changes in Powerline settings and automatically delete stale cached
Powerline*.cache
files as Vim starts.As a result, these cache files now live below the
$VIM_CACHE_DIR
directory (typically~/.cache/vim
on Unix). For tidiness, you may want to delete any old Powerline cache files in your vimfiles directory. For example, on Unix:find ~/.vim -name 'Powerline*.cache' -delete
In addition, if you make adjustments to Powerline settings in your per-user
VIMRC_BEFORE
, setg:PowerlineRequiredCacheTag
to a unique value every time you make a change to the format. For example:let g:PowerlineRequiredCacheTag = "2013-11-11"
Cleaned up references to
VIMRC_BEFORE
andVIMRC_AFTER
.Add Powerline segment to detect trailing whitespace.
- Update Python syntax highlighting support to version 3.3.5.
- Update ColorSamplerPack to version 2012-10-28.
- Unlink the syntax group pythonDot from Normal; this keeps :hardcopy output from having a dark background for dot characters in Python.
- Blacklist Consolas from using g:Powerline_symbols == "unicode", as that font doesn't properly support the needed Unicode symbols.
- Enable fontdetect and colorsamplerpack bundles early for use in
VIMRC_BEFORE
scripts. - Allow g:DefaultFontFamilies to be set from
VIMRC_BEFORE
scripts. - Update swapit plugin to version 0.3.2.
- Update BufExplorer plugin to version 7.4.2.
- Update ManPageView plugin to version 25l. Patch "sleep 2" calls to be "sleep 250m" to drop the irritating 2-second delay when K is pressed accidentally and no manpage exists under cursor. Changed g:manpageview_winopen back to the default "hsplit"; the value "reuse" is painful when pressing "K" for a non-existent manpage, since ManPageView will forcibly close the original window after displaying the error.
- Installed Dr. Chip's HiLinkTrace plugin to display the syntax highlighting stack. Use HLT! to toggle display of the syntax stack. See :help notes_hilinktrace for details.
Restored :Highlight functionality. Highlight groups that are cleared via
:highlight clear
are not removed, but are changed to have the inactive valuexxx cleared
, causing hlexists() to unhelpfully return true. Now a new function, HighlightGroupExists(), works around this behavior.See :help notes for details on disabling the :Highlight feature.
- Added the vim-session and vim-misc plugins. The vim-session plugin provides
some nice session management features. Use
:SaveSession
to save a session,:OpenSession
to load a saved session, and:CloseSession
to close the current session. See:help notes_session
for more information about how vim-session is configured, or:help session.txt
to see vim-session's documentation
- Restore customized settings for the fswitch plugin which were accidentally lost when adding the ability to override them with .lvimrc files. The fswitch plugin provides the of ("Other File") functionality (see :help notes for details).
Perform
:diffupdate
on <C-L> as part of screen refreshing.Define
SetupMakeIndent
to override some indent-related settings for makefiles.Define first-cut experimental snippets for Makefiles.
Makefiles. Now 'autoindent' is enabled and the colon key won't force a re-indentation.
Update fugitive plugin to version 2013-10-24 (34e2d253).
- Upgrade to headerguard 0.2.0; migrate it to bundle-based installation. Version 0.2.0 provide buffer-local override capabilities for inserting header guards.
- BREAKING CHANGE: Upgrade to fontsize 0.3.0, migrating to bundle-based installation. The default keystrokes have changed to <Leader><Leader>x instead of <Leader>xx. See :help fontsize-customization for configuring non-default mappings.
- Add fontdetect plugin, fixing broken font fallback logic.
- Add CHANGES.txt to document significant changes.
- Move all interesting documentation into doc/notes.txt, leaving README.txt as a pointer into the notes.