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.
        
        
        
          This package is known to build and work properly using an LFS 12.4
          platform.
        
        
          Package Information
        
        
        
          Vim Dependencies
        
        
          Recommended
        
        
          a graphical
          environment and GTK-3.24.50
        
        
          Optional
        
        
          cURL-8.15.0 (or Wget-1.25.0,
          required by some tests), GPM-1.20.7, Lua-5.4.8, Ruby-3.4.5, and rsync-3.4.1
        
       
      
        
          Installation of Vim
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            If you recompile Vim to link
            against X and your X libraries are not on the root partition,
            you will no longer have vim 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]](../images/note.png) 
          
            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]](../images/note.png) 
          
            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.11.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. Test failures, if any, will produce the file
          test.log 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]](../images/note.png) 
          
            Note
          
          
            If running the tests with bubblewrap-0.11.0 and /etc/vimrc hidden, use bwrap --dev-bind / / --dev-bind /dev/null
            /etc/vimrc make -j1 test.
          
         
        
          ![[Note]](../images/note.png) 
          
            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.1.1629, making it consistent
          with the location of documentation for other packages:
        
        ln -snfv ../vim/vim91/doc /usr/share/doc/vim-9.1.1629
        
          If you wish to update
          the runtime files, issue the following command (requires rsync-3.4.1) to download it:
        
        rsync -avzcP --exclude="/dos/" --exclude="/spell/" \
    ftp.nluug.nl::Vim/runtime/ ./runtime/
        
          And then install the updated runtime files and regenerate the
          tags file, as the root user issue:
        
        make -C src installruntime &&
vim -c ":helptags /usr/share/doc/vim-9.1.1629" -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/vim91/spell/.
          
          
            To find out what's new in Vim-9.1.1629 issue the following command:
          
          :help version-9.1.1629
          
            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
                   |