Vim

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

Vim (Vi improved) è un editor di testo basato su vi. Può essere usato da linea di comando o dall'applicazione con interfaccia grafica.

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

See also
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.

USE flags

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

Compilare (emergere)

Se il sistema X non è necessario, installare app-editors/vim:

root #emerge --ask app-editors/vim

Software aggiuntivo

Gvim

Per installare Vim sia con l'interfaccia ncurses-based (/usr/bin/vim) che con l'interfaccia grafica (per il sistema X /usr/bin/gvim), installare il pacchetto 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

Plugins

La categoria app-vim fornisce molte definizioni di sintassi aggiuntive, plugin e altre cose relative a Vim.

Usare emerge o eix per avere una panoramica dei pacchetti disponibili nella categoria 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.

Configurazione

Files

Vim può essere configurato per utente o tramite un file di configurazione a livello di sistema:

  • /etc/vim/vimrc - Il file per le impostazioni di sistema (globale).
  • ~/.vimrc - Il file specifico per l'utente (locale). La tilde (~) significa che si trova nella home directory dell'utente.

Schema colori

Circa una dozzina di combinazioni di colori sono presenti insieme al pacchetto base di Vim. Possono essere elencati nella modalità dell'ultima riga digitando colorscheme, quindi premendo Ctrl+d o premendo due volte il tasto Tab:

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

Possono essere modificati in Vim usando il comando colorscheme (in alternativa usa colo) mentre si è in modalità ultima riga:

:colorscheme peachpuff

Lo schema colore può essere applicato in maniera permanente nel file .vimrc:

FILE ~/.vimrc
colorscheme peachpuff
syntax on

La prima linea imposta lo schema colore di default mentre l'ultima linea indica lo schema colore attivo.

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:

FILE ~/.vimrc
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:

FILE ~/.vimrc
let g:leave_my_textwidth_alone=1

bug #559800 contains some discussion around this issue.

Utilizzo

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>

Come iniziare

Vim ha un tutorial integrato che dovrebbe richiedere circa 30 minuti per essere completato. Avvialo usando il comando vimtutor:

user $vimtutor

Suggerimenti pratici

Usare Vim come ex o ed dalla linea di comando

È possibile utilizzare Vim come linea singola — i comandi che possono essere utilizzati negli script o sulla riga di comando per apportare modifiche in modo non presidiato.

Ad esempio, il seguente comando aggiunge # all'inizio di ogni riga nel file file.txt:

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

Quello che succede è che Vim interpreta i comandi passati (tramite l'opzione -c). Il primo comando è il comando di sostituzione di Vim (che è molto simile a quello di sed), il secondo è l'istruzione di Vim per salvare ed uscire dall'editor.

Cambiare la codifica del file

Per cambiare la codifica del file a UTF-8, usare il seguente comando (in modalità ultima riga):

:e ++enc=utf8

Come mostrato nel trucco precedente, è possibile farlo anche da linea di comando:

user $vim -c ":wq! ++enc=utf8" file.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:

CODE Sample tabbed data
some:
  yaml:
    - data
    - structured
  in:
    - this
    - shape
  that:
    - VIM
    - may 
not: like

Vim may interpret this with autotabbing, breaking the paste:

CODE Vim misinterpretation
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.

Vedere anche

  • Guida Vim - Spiega come usare Vim con maggiori dettagli.

Risorse esterne

References