Introduction to Vim
The Vim package, which is an
abbreviation for VI IMproved, contains a vi
clone with extra features as compared to the original
vi.
The default LFS instructions install vim
as a part of the base system. If you would prefer to link
vim against X,
you should recompile vim to enable GUI mode.
There is no need for special instructions since
X support is automatically detected.
Note
Development versions of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable versions of the books.
Package Information
Vim Dependencies
Recommended
a graphical environment and
GTK+-3.24.38
Optional
GPM-1.20.7,
Lua-5.4.6,
rsync-3.2.7, and
Ruby-3.2.2
Installation of Vim
Note
If you recompile Vim to link against
X and your X
libraries are not on the root partition, you will no longer have an
editor for use in emergencies. You may choose to install an additional
editor, not link Vim against
X, or move the current vim
executable to the /bin
directory
under a different name such as vi
.
Install Vim by running the following
commands:
Note
If you intend to run the tests and have not installed Xorg in /usr,
append LDFLAGS='-L$XORG_PREFIX/lib' to the configure line below.
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h &&
echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h &&
./configure --prefix=/usr \
--with-features=huge \
--enable-gui=gtk3 \
--with-tlib=ncursesw &&
make
Note
If the global configuration file /etc/vimrc
references the VIMRUNTIME
environment variable, some
tests may complain about being unable to find the corresponding
directory and wait for user input. If this is the case, this file
should be saved and removed before running the tests. Or if
bubblewrap-0.8.0 is installed, it's also possible to
create a lightweight container environment where this file is hidden
and run the tests in the container.
To test the results, issue: make -j1 test, or
bwrap --dev-bind / / --dev-bind /dev/null /etc/vimrc make -j1
test if running the tests with bubblewrap-0.8.0
and /etc/vimrc
hidden.
Even if one of the tests fails to produce the file
test.out
in src/testdir
, the remaining tests will
still be executed. If all goes well, the log will report
ALL DONE
. Some tests labelled as
“flaky” may fail occasionally and can be ignored.
The tests are known to fail if the output is redirected to a file,
and also if they are run in a 'screen' session.
Note
Some color tests expect to be executed under the
xterm terminal emulator.
Now, as the root
user:
make install
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-9.0.2103
, making it
consistent with the location of documentation for other packages:
ln -snfv ../vim/vim90/doc /usr/share/doc/vim-9.0.2103
If you wish to update the runtime files, issue the
following command (requires rsync-3.2.7):
rsync -avzcP --exclude="/dos/" --exclude="/spell/" \
ftp.nluug.nl::Vim/runtime/ ./runtime/
To install the runtime files and regenerate the
tags
file, as the
root
user issue:
make -C src installruntime &&
vim -c ":helptags /usr/share/doc/vim-9.0.2103" -c ":q"
Command Explanations
--with-features=huge
: This switch enables all
the additional features available in Vim,
including support for multibyte characters.
--with-tlib=ncursesw
: This switch forces Vim to
link against the libncursesw
library.
--enable-gui=no
: This will prevent compilation of the
GUI. Vim will still link against
X, so that some features such as the
client-server model or the x11-selection (clipboard) are still available.
--without-x
: If you prefer not to link
Vim against X, use
this switch.
--enable-luainterp
,
--enable-perlinterp
,
--enable-python3interp=dynamic
,
--enable-tclinterp --with-tclsh=tclsh
,
--enable-rubyinterp
:
These options include the Lua, Perl, Python3, Tcl, or Ruby interpreters
that allow using other application code in vim
scripts. All the --enable-...
options can accept
=dynamic
to dynamically load the interpreter when
needed. This is required for Python 3 to
prevent segmentation faults. For tcl,
it is necessary to indicate the name of the tclsh
executable, since configure only searches versioned
names with old versions.
Configuring Vim
Config Files
/etc/vimrc
and
~/.vimrc
Configuration Information
Vim has an integrated spell checker
which you can enable by issuing the following in a vim window:
:setlocal spell spelllang=ru
This setting will enable spell checking for the Russian
language for the current session.
By default, Vim only installs spell
files for the English language. If a spell file is not available for
a language, then Vim will call the
$VIMRUNTIME/plugin/spellfile.vim
plugin and will
try to obtain the *.spl and optionally *.sug from the vim ftp server,
by using the $VIMRUNTIME/plugin/netrwPlugin.vim
plugin.
Alternatively you can manually download the *.spl and *.sug files
from: ftp://ftp.vim.org/pub/vim/runtime/spell/ and save
them to ~/.vim/spell
or in
/usr/share/vim/vim90/spell/
.
To find out what's new in Vim-9.0.2103
issue the following command:
:help version-9.0.2103
For additional information on setting up
Vim configuration files, see The vimrc Files and https://vim.fandom.com/wiki/Example_vimrc.
Contents
A list of the reinstalled files, along with their short
descriptions can be found in the
LFS Vim
Installation Instructions.
Installed Programs: gview, gvim, gvimdiff, gvimtutor, rgview, and rgvim
Installed Libraries: None
Installed Directory: /usr/share/vim
Short Descriptions
gview |
starts gvim in read-only mode
|
gvim |
is the editor that runs under X
and includes a GUI
|
gvimdiff |
edits two or three versions of a file with
gvim and shows the differences
|
gvimtutor |
teaches the basic keys and commands of
gvim
|
rgview |
is a restricted version of gview
|
rgvim |
is a restricted version of gvim
|