# Vim-&vim-version;

The Vim package contains a powerful text editor.

## Installation of Vim

### Alternatives to Vim

If you prefer another editor—such as Emacs, Joe, or Nano—please refer to for suggested installation instructions.

The following patch merges all updates from the &vim-version; Branch from the Vim developers:

    patch -Np1 -i ../&vim-branch_update-patch;

Change the default location of the `vimrc` configuration file to `/etc`:

    echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h

Prepare Vim for compilation:

    ./configure \
        --prefix=/usr --enable-multibyte

## The meaning of the configure options:

`--enable-multibyte`

- This optional but highly recommended switch enables support for editing files in multibyte character encodings. This is needed if using a locale with a multibyte character set. This switch is also helpful to be able to edit text files initially created in Linux distributions like Fedora that use UTF-8 as a default character set.

Compile the package:

    make

To test the results, issue: `make test`. However, this test suite outputs a lot of binary data to the screen, which can cause issues with the settings of the current terminal. This can be resolved by redirecting the output to a log file.

Install the package:

    make install

Many users are accustomed to using `vi` instead of `vim`. Some programs, such as `vigr` and `vipw`, also use `vi`. Create a symlink to permit execution of `vim` when users habitually enter `vi` and allow programs that use `vi` to work:

    ln -sv vim /usr/bin/vi

By default, Vim's documentation is installed in `/usr/share/vim`. The following symlink allows the documentation to be accessed via `/usr/share/doc/vim-&vim-version;`, making it consistent with the location of documentation for other packages:

    ln -sv ../vim/vim&vim-version2;/doc /usr/share/doc/vim-&vim-version;

If an X Window System is going to be installed on the CLFS system, you may want to recompile Vim after installing X. Vim comes with a GUI version of the editor that requires X and some additional libraries to be installed. For more information, refer to the Vim documentation and the Vim installation page in CBLFS at .

## Configuring Vim

By default, `vim` runs in vi-incompatible mode. This may be new to users who have used other editors in the past. The nocompatible setting is included below to highlight the fact that a new behavior is being used. It also reminds those who would change to compatible mode that it should be the first setting in the configuration file. This is necessary because it changes other settings, and overrides must come after this setting. Create a default `vim` configuration file by running the following:

    cat > /etc/vimrc << "EOF"
    " Begin /etc/vimrc

    set nocompatible
    set backspace=2
    set ruler
    syntax on
    if (&term == "iterm") || (&term == "putty")
      set background=dark
    endif

    " End /etc/vimrc
    EOF

The `set nocompatible` makes `vim` behave in a more useful way (the default) than the vi-compatible manner. Remove the no to keep the old `vi` behavior. The `set backspace=2` allows backspacing over line breaks, autoindents, and the start of insert. The `syntax on` enables vim's syntax highlighting. Finally, the if statement with the `set background=dark` corrects `vim`'s guess about the background color of some terminal emulators. This gives the highlighting a better color scheme for use on the black background of these programs.

Documentation for other available options can be obtained by running the following command:

    vim -c ':options'

## Contents of Vim

Installed programs Installed directory
- efm_filter.pl, efm_perl.pl, ex (link to vim), less.sh, mve.awk, pltags.pl, ref, rview (link to vim), rvim (link to vim), shtags.pl, tcltags, vi (link to vim), view (link to vim), vim, vim132, vim2html.pl, vimdiff (link to vim), vimm, vimspell.sh, vimtutor, and xxd /usr/share/vim

Short Descriptions

`efm_filter.pl`

- A filter for creating an error file that can be read by `vim`

`efm_perl.pl`

- Reformats the error messages of the Perl interpreter for use with the quickfix mode of `vim`

`ex`

- Starts `vim` in ex mode

`less.sh`

- A script that starts `vim` with less.vim

`mve.awk`

- Processes `vim` errors

`pltags.pl`

- Creates a tags file for Perl code for use by `vim`

`ref`

- Checks the spelling of arguments

`rview`

- Is a restricted version of `view`; no shell commands can be started and `view` cannot be suspended

`rvim`

- Is a restricted version of `vim`; no shell commands can be started and `vim` cannot be suspended

`shtags.pl`

- Generates a tags file for Perl scripts

`tcltags`

- Generates a tags file for TCL code

`view`

- Starts `vim` in read-only mode

`vi`

- Link to `vim`

`vim`

- Is the editor

`vim132`

- Starts `vim` with the terminal in 132-column mode

`vim2html.pl`

- Converts Vim documentation to HypterText Markup Language (HTML)

`vimdiff`

- Edits two or three versions of a file with `vim` and show differences

`vimm`

- Enables the DEC locator input model on a remote terminal

`vimspell.sh`

- Spell checks a file and generates the syntax statements necessary to highlight in `vim`. This script requires the old Unix `spell` command, which is provided neither in CLFS nor in CBLFS

`vimtutor`

- Teaches the basic keys and commands of `vim`

`xxd`

- Creates a hex dump of the given file; it can also do the reverse, so it can be used for binary patching