Vim stands for Vi IMproved. It is a greatly enhanced vi clone which includes syntax highlighting, scripting, a GUI, a basic IDE, folding, horizontal and vertical window splits, printing, language based smart indenting, and more. The latest version is Vim 8.2.0891. The official web page for Vim is http://www.vim.org/, where Vim users contribute tips, scripts, and so on.

Vim 7 includes integrated spell checking, tabbed windows, undo branches, extended VimL (Vim's scripting language) to include arrays and dictionaries (named arrays), language based completion, and many other major and minor improvements.

Vim 8 includes significant improvements and enhancements over 7, and 8.1 includes terminal window support.

The code on this page is distributed under the Vim license, unless otherwise noted. See ":help license". Most of the stuff here requires Vim 7.0 or greater. Some of these scripts are also available on www.vim.org.

You may contact me with questions or problems with any of these scripts by using the address at the bottom of this page.

The <runtimepath> notation below indicates "~/.vim/" for Unix and "$HOME/vimfiles/" for Windows, and "vimrc" indicates "~/.vimrc" for Unix and "$HOME/_vimrc" for Windows. See ":help 'runtimepath'" and ":help vimrc".

  • BufClose.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    A command and function to close a buffer in a window without closing the window, resulting in the window being open to a blank buffer.
  • BufOnly.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    A command and function to delete all the buffers except the current/named buffer.
  • CharSort.vim ( Last modified: Apr 14, 2018 - 07:40:16 PM )
    Function and mappings to a sort string of characters.
  • ConvertBase.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    A set of functions to convert numerical bases. (Includes CovertToBase(), ConvertFromBase() and ConvertBases().)
  • CreateMenuPath.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    A function that creates a menu that mirrors a directory tree.
  • GreedyBackspace.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    This script will cause your backspace key to delete all the whitespace characters before the cursor when the cursor is on a whitespace character.
  • HTML/XHTML Editing ( Last modified: Feb 17, 2020 - 07:17:15 PM )
    This is a set of HTML/XHTML mappings and menus for Vim 7 or later.
  • html.vim ( Last modified: Feb 02, 2020 - 11:40:18 AM )
    For Vim 7.3. Extends the HTML syntax highlighting to enable concealing of bold, italic, and underline tags, and enable displaying of many HTML character entities as their actual character counterpart. Plase this in <runtimepath>/after/syntax/.
  • mush.vim (syntax folding) ( Last modified: Feb 07, 2020 - 11:01:00 PM )
    Syntax based folding for MUSH/MUX code. It includes other syntax additions to work with my mushpp script (see Perl section). Place this in <runtimepath>/after/syntax/ and put ":let mush_fold = 1" in your vimrc.[1]
  • rcs.vim ( Last modified: Feb 23, 2019 - 07:02:46 PM )
    Autocmds and menus for RCS files. Place this in <runtimepath>/plugin/. It asks you whether to check out a file if it's readonly and controlled by RCS, then lets you check it back in with a log message when you're done.
  • Rename.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    A command and function that basically does a ":saveas <newfile>" then removes the old filename on the disk.
  • RemoveFile.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    A command and function that removes a file from the disk.
  • slrnsc.vim (indent) ( Last modified: Apr 14, 2018 - 07:37:12 PM )
    An auto-indent file for the slrn score files. Place this in <runtimepath>/indent/.
  • slrnsc.vim (syntax folding) ( Last modified: Apr 14, 2018 - 07:37:25 PM )
    Syntax based folding for slrn score files. Place this in <runtimepath>/after/syntax/ and put ":let slrn_fold = 1" in your vimrc.
  • SmartX.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    Smart deletion of \X escapes with the x/X/Backspace/Delete keys.
  • Tabmerge.vim ( Last modified: Apr 14, 2018 - 07:33:09 PM )
    Merge a tab's windows with the current tab.
  • tf.vim (indent) ( Last modified: Apr 14, 2018 - 07:35:57 PM )
    An auto-indent file for the TinyFugue internal scripting language. Place this in <runtimepath>/indent/. [1]
  • tf.vim (syntax folding) ( Last modified: Apr 14, 2018 - 07:35:39 PM )
    Syntax based folding for the TinyFugue internal scripting language. Place this in <runtimepath>/after/syntax/ and put ":let tf_fold = 1" in your vimrc. If you want to fold commented blocks of code, put ":let tf_fold_comments = 1" in your vimrc as well. [1]
[1] You may also need to read ":help new-filetype".