Vim

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Vim and the translation is 41% complete.
Outdated translations are marked like this.
Resources

Vim (Vi improved) — это текстовый редактор, основанный на текстовом редакторе vi. Его можно использовать из командной строки или как отдельное приложение с графическим интерфейсом.

Vim should not be confused with Neovim, a similar program which may be used in its place.

Установка

USE-флаги

USE flags for app-editors/vim Vim, an improved vi-style text editor

X Link console vim against X11 libraries to enable title and clipboard features in xterm
acl Add support for Access Control Lists
crypt Use dev-libs/libsodium for crypto support
cscope Enable cscope interface
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
gpm Add support for sys-libs/gpm (Console-based mouse driver)
lua Enable Lua scripting support
minimal Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features)
nls Add Native Language Support (using gettextGNU locale utilities)
perl Add optional support/bindings for the Perl language
python Add optional support/bindings for the Python language
racket Enable support for Scheme using dev-scheme/racket
ruby Add support/bindings for the Ruby language
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
sound Enable sound support
tcl Add support the Tcl language
terminal Enable terminal emulation support
vim-pager Install vimpager and vimmanpager links

Emerge

Если поддержка X Window System не требуется, просто установите app-editors/vim:

root #emerge --ask app-editors/vim

Дополнительное программное обеспечение

Gvim

Чтобы установить Vim как с интерфейсом на основе ncurses (/usr/bin/vim), так и с графическим интерфейсом (для X Window System — /usr/bin/gvim), установите пакет app-editors/gvim:

root #emerge --ask app-editors/gvim

Packages

Vim has support for packages, which provide a native mechanism to extend functionality. Read the built-in packages documentation for more information: :help packages

Плагины

Категория app-vim содержит множество дополнительных спецификаций синтаксиса, плагины и прочие вещи, относящиеся к Vim.

Используйте emerge или eix, чтобы получить обзор существующих пакетов в категории app-vim:

user $emerge --search "%@^app-vim"
user $eix -cC app-vim

Not all Vim plugins will be available in the Gentoo repository. Vim now includes native packages, as a way to install plugins, and there are also several plugin managers for Vim.

Конфигурация

Файлы

Vim можно настроить для каждого пользователя или с помощью общесистемного конфигурационного файла:

  • /etc/vim/vimrc - файл для общесистемных настроек
  • ~/.vimrc - файл конфигурации для конкретного пользователя. Тильда (~) подразумевает что файл находится внутри домашнего каталога пользователя.

Color schemes

About a dozen color schemes are shipped with the base Vim package. They can be listed in last line mode by typing colorscheme, then pressing either Ctrl+d or pressing the Tab key twice:

:colorscheme
blue       darkblue   default    delek      desert     elflord    evening    industry   koehler    morning    murphy     pablo      peachpuff  ron        shine      slate      torte      zellner

They can be changed in Vim by using the colorscheme (alternatively use colo) command while in last line mode:

:colorscheme peachpuff

Color schemes can be permanently applied in the .vimrc file:

ФАЙЛ ~/.vimrc
colorscheme peachpuff
syntax on

The first line sets the default color scheme while the last line activates the color scheme.

Selecting vi editor and system default editor

If Vim - and only Vim - is installed, the vi command should launch Vim. If other vi-like editors are installed, eselect may be used to choose which editor the vi command launches.

The text editor article may also be of interest for setting a system default editor, if Vim is to be set as the default.

Использование

Invocation

From the command line:

user $vim --help
vim --help
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Nov 26 2021 11:56:27)
 
Usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin
   or: vim [arguments] -t tag          edit file where tag is defined
   or: vim [arguments] -q [errorfile]  edit file with first error
 
Arguments:
   --			Only file names after this
   -v			Vi mode (like "vi")
   -e			Ex mode (like "ex")
   -E			Improved Ex mode
   -s			Silent (batch) mode (only for "ex")
   -d			Diff mode (like "vimdiff")
   -y			Easy mode (like "evim", modeless)
   -R			Readonly mode (like "view")
   -Z			Restricted mode (like "rvim")
   -m			Modifications (writing files) not allowed
   -M			Modifications in text not allowed
   -b			Binary mode
   -l			Lisp mode
   -C			Compatible with Vi: 'compatible'
   -N			Not fully Vi compatible: 'nocompatible'
   -V[N][fname]		Be verbose [level N] [log messages to fname]
   -D			Debugging mode
   -n			No swap file, use memory only
   -r			List swap files and exit
   -r (with file name)	Recover crashed session
   -L			Same as -r
   -A			Start in Arabic mode
   -H			Start in Hebrew mode
   -T <terminal>	Set terminal type to <terminal>
   --not-a-term		Skip warning for input/output not being a terminal
   --ttyfail		Exit if input or output is not a terminal
   -u <vimrc>		Use <vimrc> instead of any .vimrc
   --noplugin		Don't load plugin scripts
   -p[N]		Open N tab pages (default: one for each file)
   -o[N]		Open N windows (default: one for each file)
   -O[N]		Like -o but split vertically
   +			Start at end of file
   +<lnum>		Start at line <lnum>
   --cmd <command>	Execute <command> before loading any vimrc file
   -c <command>		Execute <command> after loading the first file
   -S <session>		Source file <session> after loading the first file
   -s <scriptin>	Read Normal mode commands from file <scriptin>
   -w <scriptout>	Append all typed commands to file <scriptout>
   -W <scriptout>	Write all typed commands to file <scriptout>
   -x			Edit encrypted files
   --startuptime <file>	Write startup timing messages to <file>
   -i <viminfo>		Use <viminfo> instead of .viminfo
   --clean		'nocompatible', Vim defaults, no plugins, no viminfo
   -h  or  --help	Print Help (this message) and exit
   --version		Print version information and exit

The vi command may also be used to launch Vim, if so configured.

Specify a name, to open an existing file, or to create a new one:

user $vim <filename>

Начинаем

В Vim есть встроенный учебник, который требует около 30 минут на изучение. Запустите его, используя команду vimtutor:

user $vimtutor

Советы и хитрости

Использование Vim в качестве ex или ed

Vim можно использовать для создания однострочников — выполняющихся без человеческого участия команд, применимых в скриптах или при работе из командной строки.

К примеру, следующая команда добавляет # в начало каждой строки файла file.txt:

user $vim -c ":%s/^/#/g" -c ":x" file.txt

Что тут происходит? Vim интерпретирует переданные ему (через параметр -c) команды. Первой идет команда поиска и замены Vim (очень похожая на аналогичную команду sed), второй — команда сохранения файла и выхода из редактора.

Изменение кодировки файла

Чтобы изменить кодировку файла на UTF-8, используйте следующую команду (в командном режиме Vim):

:e ++enc=utf8

Как показано в предыдущем примере, можно сделать это и из командной строки:

user $vim -c ":wq! ++enc=utf8" file.txt

Troubleshooting

I'm trapped in vim!

For someone entering vim without knowing how to use it, it may not be evident how to quit.

Press esc several times, then :, q, enter. To quit without saving, press esc several times, then :, q, !, enter.

If several files are open, try pressing esc several times, then :, q, a, enter. To quit without saving, press esc several times, then :, q, a, !, enter.

If this doesn't help, and desperate measures are needed, something like killall vim may be a last ditch solution (from another terminal). Beware that this will terminate all the vim sessions for a user, without saving. If run as root, such a command will terminate all vim sessions for all users on the system.

Смотрите также

  • Vim Guide - Более подробно объясняет, как использовать Vim.

Ссылки

  • Документация по Vim. Включает в себя пособия (вроде ":help" и книги Free VIM OPL), часто задаваемые вопросы, советы, учебники в форматах HTML, PDF и PS.
  • A vim Tutorial and Primer. Отличный учебник с примерами по vim. Читайте его в первую очередь.
  • Скрипты и плагины для VIM.
  • Vim for Humans (free ebook) - Склонируйте и cd в каталог исходного кода, mkdir dist, измените sphinx2-build на sphinx-build в SPHINXBUILD в файле rst/en/Makefile. Запустите ./makedist.sh. Читайте PDF в ./dist/vimpourleshumains/.
  • Learning the vi and Vim Editors, 7th Edition  O'Reilly  Print ISBN: 978-0-596-52983-3, Ebook ISBN: 978-0-596-15935-1.
  • Vim anti-patterns - Запись в блоге о управлении «потоком» используя Vim.

References