Vim
Vim (Vi improved) es un editor de texto basado en el editor de texto vi. Se puede utilizar desde la línea de órdenes o como una aplicación independiente con una interfaz gráfica de usuario.
Vim should not be confused with Neovim, a similar program which may be used in its place.
The Vi article provides general information on vi-like editors. See the Vim guide for an introductory tutorial on vi-like editor usage. See the text editor article for general information on installing and configuring text editors in Gentoo.
Instalación
Ajustes 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 gettext - GNU 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
Si no se necesita soporte del sistema X Window, simplemente se puede instalar app-editors/vim:
root #
emerge --ask app-editors/vim
Software adicional
Gvim
Para instalar Vim con la interfaz basada en ncurses (/usr/bin/vim) y la interfaz gráfica (para el sistema X Window /usr/bin/gvim), instalar el paquete 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
Extensiones
La categoría app-vim ofrece una gran cantidad de definiciones adicionales de sintaxis, plugins y otros elementos relacionados con Vim.
Utilice emerge o eix para obtener una vista general de los paquetes disponibles en la categoría 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.
Configuración
Archivos
Vim se puede configurar para cada usuario o para todo el sistema mediante un fichero de configuración:
- /etc/vim/vimrc - El fichero de configuración para todo el sistema (global).
- ~/.vimrc - El fichero de configuración específico para cada usuario (local). La virgulilla (~) indica que se encuentra en el directorio de inicio del usuario.
Esquema de colores
El paquete Vim contiene cerca de una docena de colores. Se pueden listar tecleando colorscheme en el modo de última línea y tecleando bien Ctrl+d, bien Tabdo veces:
:
colorscheme
blue darkblue default delek desert elflord evening industry koehler morning murphy pablo peachpuff ron shine slate torte zellner
Se pueden cambiar en Vim usando la orden colorscheme (utilice colo de forma alternativa) mientras se está en el modo de última línea:
:
colorscheme peachpuff
Los esquemas de color se pueden aplicar de forma permanente en el fichero .vimrc:
colorscheme peachpuff
syntax on
La primera línea define el esquema de color mientras que la última activa el esquema.
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.
Gentoo syntax
To enable support for the Gentoo syntax plugin (app-vim/gentoo-syntax) within vim, add the following lines to the user's ~/.vimrc file:
filetype plugin on
filetype indent on
leave_my_textwidth_alone
By default, Vim and Neovim do not hard-wrap lines[1], i.e., typing on a line longer than a certain length does not create a new line. However, Gentoo installs config files for Vim[2] and Neovim[3] that cause lines longer than 78 characters in .txt files to be hard-wrapped. To override this behavior, the following should be specified in the user's ~/.vimrc file:
let g:leave_my_textwidth_alone=1
bug #559800 contains some discussion around this issue.
Utilización
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>
Comenzar
Vim tiene un tutorial incorporado que requiere alrededor de treinta minutos de lectura. Comience utilizando la orden vimtutor:
user $
vimtutor
Consejos y trucos
Usar Vim como ex o ed desde la línea de órdenes
Es posible utilizar Vim para ficheros de una línea, órdenes que se pueden utilizar en la línea de órdenes para hacer cambios sin intervención del usuario.
Por ejemplo, la siguiente orden añade #
al principio de cada línea en el fichero fichero.txt:
user $
vim -c ":%s/^/#/g" -c ":x" fichero.txt
Lo que ocurre es que Vim interpreta las órdenes que se han pasado (mediante la opción the -c
). La primera orden es la orden de sustitución de Vim (que es muy similar a la de sed), la segunda es la instrucción de Vim para guardar y salir del editor.
Cambiar la codificación del fichero
Para cambiar la codificación del fichero a UTF-8, utilice la siguiente orden (en el modo de última línea):
:
e ++enc=utf8
Tal y como se muestra en el truco anterior, es posible hacer esto también desde la línea de órdenes:
user $
vim -c ":wq! ++enc=utf8" fichero.txt
Troubleshooting
I'm trapped in vim!
For someone entering vim without first having learned how to use it, it may not be obvious 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.
Pastes are being tabbed
Say the following text is trying to be pasted into a Vim buffer:
some:
yaml:
- data
- structured
in:
- this
- shape
that:
- VIM
- may
not: like
Vim may interpret this with autotabbing, breaking the paste:
some:
yaml:
- data
- structured
in:
- this
- shape
that:
- VIM
- may
not: like
To correct this, run the following command: :set paste to enable Vim's paste mode, once the paste is completed, :set nopaste can be used to go back to the previous settings.
E1187
user $
vim foobar
E1187: Failed to source defaults.vim Press ENTER or type command to continue
Seems solved by destabilize 8.2.4328.
Ver también
- Guía de Vim. Explica como utilizar Vim más detalladamente.
Recursos externos
- Documentación de Vim Incluye manuales (también conocidos como ":help" y Libros de Vim personales libres ), FAQS, HOWTO's, Tutoriales, en formatos HTML, PDF y PS.
- A vim Tutorial and Primer - Un excelente tutorial de iniciación. Lea éste en primer lugar
- Scripts/Plugins de VIM
- Vim for Humans (libre) - Clone y haga cd en su directorio de fuentes mkdir dist, cambie
sphinx2-build
porsphinx-build
para SPHINXBUILD en rst/en/Makefile. Lance ./makedist.sh. Lea el PDF en ./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 - Una entrada de blog acerca de como mantenerse con Vim.