Vim

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Vim and the translation is 100% complete.

A Vim (Vi improved) egy szövegszerkesztő, amely a vi szövegszerkesztőre épül. Használható parancssorból, illetve egy grafikus felhasználói felülettel ellátva önálló alkalmazáskén is használható.

A Vim szövegszerkesztő nem összekeverendő a Neovim szövegszerkesztővel, amely egy hasonló program, és helyette is használható.

See also
A Vi cikk általános információkat nyújt a vi-szerű szövegszerkesztőkről. Tekintse meg a Vim útmutatót egy bevezető oktatóanyagért a vi-szerű szövegszerkesztők használatáról. Tekintse meg a szövegszerkesztő cikket az általános információkért a szövegszerkesztők telepítésével és beállításával kapcsolatban a Gentoo operációs rendszeren.

Telepítés

USE jelölőzászlók

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

Ha nincs szükség az X Window System támogatásra, akkor telepítse a app-editors/vim szoftvercsomagot:

root #emerge --ask app-editors/vim

További szoftverek

A Gvim szövegszerkesztő

A Vim telepítéséhez mind a ncurses alapú felülettel (/usr/bin/vim), mind pedig a grafikus felülettel (az X Window System számára - /usr/bin/gvim), telepítse a app-editors/gvim szoftvercsomagot:

root #emerge --ask app-editors/gvim

Szoftvercsomagok

A Vim támogatja a szoftvercsomagokat, amelyek natív mechanizmust biztosítanak a funkcionalitás bővítéséhez. További információért olvassa el a beépített szoftvercsomagok dokumentációját: :help packages

Bővítmények

A app-vim kategória számos további szintaxis-definíciót, bővítményt és más a Vim szövegszerkesztőhöz kapcsolódó tartalmat kínál.

Használja a emerge vagy a eix parancsot, hogy áttekintést kapjon a app-vim kategóriában elérhető szoftvercsomagokról:

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

Nem minden Vim bővítmény érhető el a Gentoo szoftvercsomag-tárolójában. A Vim mostantól natív szoftvercsomagokat tartalmaz, amelyek lehetőséget nyújtanak bővítmények telepítésére, és emellett számos bővítménykezelő is elérhető a Vim számára.

Beállítás

Fájlok

A Vim szövegszerkesztő beállítható minden egyes felhasználó számára külön-külön, illetve egy rendszerszintű beállításfájl segítségével is beállítható rendszerszinten igyszerre mindenki számára:

  • /etc/vim/vimrc - Ez a rendszerszintű (globális) beállításfájl.
  • ~/.vimrc - Ez a felhasználóspecifikus (lokális) beállításfájl. A tilde (~) azt jelenti, hogy az a felhasználó home könyvtárában található meg a beállításfájl.
  • ~/.vim/pack/foo - Ez a bővítmények telepítésének a helye (Vim 8 és újabb verziók esetén).[1] Substitute foo for the name of each plugin.

Színsémák

Körülbelül egy tucat színséma érkezik a Vim alapszoftvercsomagjával. Ezeket az utolsó soros módban lehet listázni, ha beírja a colorscheme parancsot (utána egy szóköz), majd lenyomja a Ctrl + d billentyűgomb kombinációt, vagy kétszer megnyomja a Tab billentyűgombot.

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

A Vim színsémái módosíthatók az colorscheme (alternatívaként használható az colo) parancs segítségével, miközben az utolsó soros módban van:

:colorscheme peachpuff

A színsémák véglegesen alkalmazhatók a .vimrc fájlban. Vegye figyelembe, hogy a syntax on sorra is szükség van az aktiváláshoz:

FILE ~/.vimrc
colorscheme peachpuff
syntax on

Az első sor beállítja az alapértelmezett színsémát, míg az utolsó sor aktiválja a színsémát.

A vi szövegszerkesztő és a rendszerszintű alapértelmezett szövegszerkesztő kiválasztása

Ha csak a Vim van telepítve,akkor a vi parancsnak a Vim szövegszerkesztőt kell elindítania. Ha más vi-szerű szerkesztők is telepítve vannak, akkor az eselect használható a parancs által indított szövegszerkesztő kiválasztására.

Ha a Vim szövegszerkesztőt szeretné alapértelmezett szövegszerkesztőként beállítani, akkor a szövegszerkesztő cikk szintén érdekes lehet a szövegszerkesztő rendszerszintű alapértelmezett beállításának érdekében.

Gentoo szintaxis

A Gentoo szintaxis bővítmény (app-vim/gentoo-syntax) támogatásának engedélyezéséhez a vim szövegszerkesztőben, adja hozzá a következő sorokat a felhasználó ~/.vimrc fájljához:

FILE ~/.vimrc
filetype plugin on
filetype indent on

leave_my_textwidth_alone

Alapértelmezés szerint a Vim és a Neovim nem alkalmazza a sorok automatikus tördelését[2], azaz ha egy sor hosszabb a meghatározott maximális hossznál, akkor az nem hoz létre új sort. Ugyanakkor a Gentoo telepít beállításfájlokat a Vim[3] és a Neovim[4] számára, amelyek a .txt fájlokban lévő sorokat, amennyiben azok hosszabbak 78 karakternél, akkor automatikusan tördelik. Ennek a viselkedését felül lehet bírálni a felhasználó ~/.vimrc fájljában a következőképpen:

FILE ~/.vimrc
let g:leave_my_textwidth_alone=1

A bug #559800 hibajegy tartalmaz némi vitát ezzel a kérdéssel kapcsolatban.

Használat

Futtatás

Futtatás a parancssorból:

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

Amennyiben megfelelően be van állítva, akkor a vi parancs szintén használható a Vim szövegszerkesztő elindítására.

Adjon meg egy nevet egy meglévő fájl megnyitásához vagy egy új fájl létrehozásához:

user $vim <filename>

Oktatóanyag

A Vim beépített oktatóanyaga körülbelül 30 perc alatt végigjárható. Indítsa el a vimtutor parancs segítségével:

user $vimtutor

Tippek és trükkök

A Vim szövegszerkesztő használata ex vagy ed parancssori eszközként

Lehetséges a Vim használata egy soros parancsok számára. Olyan utasításokhoz, amelyek szkriptekben vagy a parancssorban alkalmazhatók módosítások végrehajtására felügyelet nélküli módon.

Például a következő parancs hozzáadja a # jelet a file.txt fájl minden sorának elejéhez:

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

Az történik, hogy a Vim értelmezi az átadott parancsokat (a -c opcióval). Az első parancs a Vim helyettesítési parancsa (ami nagyon hasonló a sed parancsához), a második pedig a Vim utasítása a fájl mentésére és az editorból való kilépésre.

Fájl kódolásának a megváltoztatása

A fájl kódolásának UTF-8 karakterkódolásra való megváltoztatásához használja a következő parancsot (utolsó sor módjában):

:e ++enc=utf8

Amint azt az előző trükk bemutatta, ezt megcsinálni a parancssorból is lehetséges:

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

Hibaelhárítás

Bennragadtam a vim szövegszerkesztőben!

Annak, aki úgy lép be a Vim szövegszerkesztőbe, hogy előtte nem tanulta meg, hogy miként kell azt használnia, nem feltétlenül nyilvánvaló, hogy miként lehet abból kilépni.

Nyomja meg többször a esc billentyűgombot, majd :, q, enter. Mentés nélküli kilépéshez nyomja meg többször a esc billentyűgombot, majd :, q, !, enter.

Ha több fájl van megnyitva, akkor próbálja meg többször megnyomni a esc billentyűgombot, majd :, q, a, enter. Mentés nélküli kilépéshez nyomja meg többször a esc billentyűgombot, majd :, q, a, !, enter.

Ha ez sem segít, és kétségbeesett lépésekre van szükség, akkor egy olyan megoldás, mint a killall vim, lehet az utolsó lehetőség (egy másik terminálból). Vegye figyelembe, hogy ez a parancs minden vim munkamenetet megszakít a felhasználó számára, az adatok mentése nélkül. Ha root felhasználóként futtatja a szövegszerkesztőt, akkor egy ilyen parancs minden felhasználó vim munkamenetét megszakítja az operációs rendszeren. Ha ez sem segít akkor jöhet a fejsze, illetve a nagykalapács.

Beillesztések tabulátorozva jelennek meg

Feltételezzük, hogy a következő szöveget próbálják beilleszteni egy Vim bufferbe:

CODE Példa a tabulátorozott adatokra
some:
  yaml:
    - data
    - structured
  in:
    - this
    - shape
  that:
    - VIM
    - may 
not: like

A Vim értelmezheti ezt automatikus tabulálással, megszakítva a beillesztést:

CODE Vim félreértelmezése
some:
  yaml:
      - data
          - structured
	   in:
	       - this
		   - shape
		     that:
		         - VIM
			     - may 
			     not: like

A probléma javításához futtassa a következő parancsot: :set paste, hogy engedélyezze a Vim beillesztési módját. Miután a beillesztés befejeződött, a :set nopaste parancs használatával visszatérhet az előző beállításokhoz.

E1187

user $vim foobar
E1187: Failed to source defaults.vim
Press ENTER or type command to continue

Úgy tűnik, hogy ezt megoldotta a következő frissítés: destabilize 8.2.4328.

További olvasnivaló a témában

Külső források

Hivatkozások