Modbus Relay stručný manuál Sepsal: František Ryšánek
Obsah Modbus Relay ......................................................................................................................................1 Součásti zařízení...............................................................................................................................1 HW ...............................................................................................................................................1 SW................................................................................................................................................2 Základy ovládání ..............................................................................................................................2 Úvodem ........................................................................................................................................2 Administrátorské heslo.................................................................................................................2 Obecné příkazy a klávesové zkratky............................................................................................2 Konfigurace......................................................................................................................................3 Přepnutí disku z režimu RO do režimu RW a naopak .................................................................3 Konfigurace IP adresy a DNS ......................................................................................................4 Konfigurace démona Relay..........................................................................................................4 Aktualizace softwaru....................................................................................................................4 Formát souboru relay.conf ...........................................................................................................5 Základy ovládání textového editoru „vi“ .....................................................................................9
Součásti zařízení HW Průmyslové PC s potřebnými porty: Ethernet, RS-232 (dle potřeby i RS-422/RS-485) – podle požadovaného výkonu, počtu portů a dalších omezení lze vybrat vhodný typ počítače a rozšiřujících desek. Read-only diskové médium na bázi flash (DiskOnChip nebo CompactFlash), lze použít i točivý harddisk. Napájecí zdroj 230V st. nebo 24V ss., popř. bez zdroje (vstup pro stabilizované napájení +5 a +12 V).
FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
SW - operační systém Linux: minidistribuce založená na stolním Linuxu, s plnohodnotnou GNU libc a základní sadou běžných systémových utilit. - user-space knihovna Linux Modbus (interní produkt FCC PS s.r.o.) - aplikační démon „relay“ - konfigurace všech softwarových částí se provádí editací textových konfiguračních souborů v operačním systému zařízení.
Základy ovládání Úvodem Pro potřeby konfigurace, kontroly a případného ladění je třeba přihlásit se do operačního systému zařízení. Ovládání zařízení je dáno použitým operačním systémem, kterým je Linux – volně šiřitelný OS UNIXového typu. Zařízení neobsahuje Xwindows, pouze příkazový řádek a obslužné aplikace, které běží v tomto prostředí. K zařízení lze připojit VGA monitor a PS/2 klávesnici (pokud použitý PC hardware obsahuje příslušné porty). Dále je standardně možný přístup po síti přes telnet, na přání také přes sériovou konzolu nebo po síti přes SSH. Jako telnetový klient v nouzi stačí standardní Telnet dodávaný jako součást Windows (emulace ANSI, ale ve VIčku nefungují kurzorové šipky). Pro přesnější emulaci Linuxové lokální konzole lze doporučit terminálový emulátor CRT nebo SecureCRT. CRT umí telnet, SecureCRT umí i RS-232 a SSH. Dalším vhodným terminálem je Putty. Doporučeným typem emulace je „Linux“, lze ale použít i ANSI nebo VT100 a příbuzné. Pro samotný běh zařízení není zapotřebí monitor ani klávesnice (ani vzdálený přístup). Stačí zapnout síťový vypínač. Administrátorské heslo Administrátorský účet má z výroby nastaveny tyto parametry: Login: root Heslo: abcd1234 Obecné příkazy a klávesové zkratky V případě místního přihlášení přes konvenční monitor a klávesnici je k dispozici šest virtuálních konzol, mezi kterými lze přepínat klávesovými kombinacemi Alt+F1 až Alt+F6. Konzola má scrollback buffer, kterým lze rolovat - s použitím klávesových kombinací Shift+PgUp a Shift+PgDown. Buffer má omezenou velikost a vyprázdní se přepnutím na jinou konzolu. FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
Výše popsané klávesové zkratky nefungují při přihlášení přes Telnet (nebo SSH nebo sériovou konzolu). Při vzdáleném přístupu však lze použít několik paralelních relací, odrolovaný text lze nalézt ve scrollback bufferu použitého telnetového klienta (resp. terminálového emulátoru). Nezávisle na způsobu přihlášení lze vracet již použité příkazy šipkami nahoru a dolů, při jejich editaci lze používat CTRL+A a CTRL+E (začátek a konec řádku), na lokální konzoli a v některých terminálových emulátorech fungují i klávesy Home a End. CTRL+C ukončí aktuální program. V příkazovém řádku funguje velké množství standardních unixových a Linuxových příkazů, např.: ls
výpis souborů v daném adresáři (DOS: dir). Modifikace: ls –l, ls –al
pwd
aktuální cesta
cd
přechod do jiného adresáře (pozor na mezeru před argumentem, tj. např. „cd
cp
kopírovat soubor (DOS: copy). Modifikace: cp –R (recursive)
mv
přesunout nebo přejmenovat soubor (DOS: move, rename)
výpis obsahu souboru, stránkovaný, umí listovat i zpátky
ps
jednorázový seznam běžících procesů. Doporučená modifikace: ps -auxww
top
trvale běžící seznam procesů, periodicky se aktualizuje, třídí se podle zátěže (q = quit)
kill
šetrně ukonči proces (argumentem je PID). Modifikace: kill -9 (zabij natvrdo)
mc
Midnight Commander – souborový manažer (DOS: nc, vc, m602), má i editor
..“
Rozdíly oproti DOSu: disky nemají písmenka, v systému je jediný společný kořenový adresář: „/“. Disky se „montují“ na prázdné adresáře. Adresáře v cestě jsou odděleny obyčejným lomítkem, tj. nikoli zpětným lomítkem. Zpětné lomítko znamená „escape sekvenci“ pro tvrdé vložení následujícího znaku.
Konfigurace Přepnutí disku z režimu RO do režimu RW a naopak Výhodou flashdisků je odolnost vůči vybracím. Nevýhodou je omezený počet zápisových cyklů, který lze velmi snadno vyčerpat přímým ukládáním logů nebo swapováním. Proto je flashdisk za běhu systému standardně v režimu read-only, a je v tomto režimu připojen automaticky již při startu. Pokud potřebujeme upravit konfiguraci zařízení, nezbývá než přepnout disk po dobu změn do režimu pro plný přístup (read-write). A následně ho přepnout zpátky do režimu read-only, přinejmenším proto, aby byl svazek opět plně odolný vůči výpadkům napájení. K přepínání se používají dva jednoduché příkazy:
FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
rw
= povol zápis
(nyní lze provádět změny konfigurace) ro
= synchronizuj buffery na disk a zakaž zápis
Konfigurace IP adresy a DNS IP adresa, maska, broadcast a gateway jsou uloženy pohromadě v souboru /etc/NETWORK, ze kterého si data vezme startovní skript /etc/init.d/network . Vlastní jméno počítače je uloženo v souboru /etc/HOSTNAME. Adresy nameserverů a doména jsou uloženy v tradičním souboru /etc/resolv.conf. V systému samozřejmě funguje tradiční příkaz ifconfig, kterým lze IP adresu přímo změnit. S ohledem na případný restart je ale vhodnější provést úpravu v konfiguračních souborech. Změnu nastavení sítě lze uplatnit i bez rebootu, pouze zavoláním příslušného init skriptu: /etc/init.d/network restart Změny v /etc/resolv.conf (nastavení DNS) se projeví i bez restartu. Po změně konfigurace IP adresy je vhodné restartovat Relay démona (v jednodušších případech to není nutné, chytí se sám). Konfigurace démona Relay Démon „relay“ si bere konfiguraci ze souboru /etc/relay.conf . Po změně konfigurace je třeba zavolat doprovodný inicializační skript, který provede restart vlastního démona. Protože se jedná o klíčovou součást zařízení, je tento skript zahrnut symbolickým odkazem ve standardní „cestě“ shellu, takže není třeba volat ho plným jménem z /etc/init.d/ : relay restart Aktualizace softwaru Samotný démon „relay“ je tvořen jediným binárním spustitelným souborem /bin/relay.bin. Pokud půjde o aktualizaci pouze tohoto démona, lze ji provést prostou kopií souboru – příkazy operačního systému. Jako médium pro přenos aktualizovaného souboru do cílového zařízení lze použít FTP (na zařízení běží FTP server), nebo lze připojit CD-ROM či floppy mechaniku. Případně, pokud to hardware podporuje, USB disk. Aktualizovat lze také celý operační systém, kompletním přepsáním obsahu flashdisku (tj. přepíše se např. i obsah konfiguračních souborů). V případě CompactFlash paměti lze toto provést v libovolném PC s USB čtečkou a bootovatelnou jednotkou CD-ROM, v případě DiskOnChipu je třeba připojit k cílovému zařízení jednotku CD-ROM, z ní nastartovat instalátor a flashdisk přepsat. Případně se lze dohodnout na zaslání flashdisku s aktualizovaným softwarem – ovšem pozor v případě DiskOnChipu, jeho výměna představuje poměrně choulostivou operaci, která si může vyžádat vymontování motherboardu (připojit CD-ROM je méně práce). Potřebné kabely pro připojení disketové a CD-ROM mechaniky mohou být součástí standardní dodávky hadrwaru (záleží na zvoleném modelu motherboardu), u miniaturních průmyslových PC může být potřeba ještě standardní PC/AT zdroj. FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
Formát souboru relay.conf Příklad # Tato radka znamena komentar. ; Tohle je taky komentar. source port ttyS0,9600,8N1,RTU,NOFLOW id 6 => host 192.168.2.120 frame_t 500ms pend_t 2s tx_t 3s id 0 id 4 => host 192.168.2.120 id 1 id 5 => host 192.168.2.121 id 2 id 7 => host senzor22.in.firma.cz:540 id 0 id 8 => host senzor22.in.firma.cz:540 id 1 # Prazdne radky jsou ignorovany. source port ttyS1,9600,8N1,ASCII,FLOW frame_t 5ch pend_t 500ms tx_t 200000 id 6 => host 192.168.2.120 id 1 id 4 => host 192.168.2.120 id 3 id * => port ttyS2,19200,8N1,RTU,FLOW gw_timeout source host any:503 gw_nopath id 0xE => host nekdo.nekde.cz id 50 id 0x0F => port ttyS2
Formálnější definice syntaxe Na samostatném řádku je určen zdroj dat (Modbus port typu slave). Na následujících řádcích jsou určena pravidla pro mapování Modbus Device ID’s, tj. mj. cílové porty. Jeden řádek = jedno pravidlo = jeden cíl (Modbus port typu master). Pravidla přísluší k naposledy definovanému zdroji. Definice cíle se mohou opakovat (duplicita je detekována a ošetřena). Z logiky věci vyplývá, že prvním výkonným řádkem v konfiguračním souboru musí být definice zdroje dat. Duplicitní zdroje nejsou povoleny. Duplicitní cíle jsou povoleny, interně jsou všechny duplicitní cíle redukovány na jediný cíl, který si podrží vedlejší atributy z prvotní definice (vedlejší atributy udané v dalších definicích jsou potichu ignorovány). Není povoleno definovat cíl, který byl již definován jako zdroj – jeden port nemůže být zároveň master a slave, ani zároveň lokální Modbus/TCP server a cílový port (vznikla by smyčka). Jak zdroj tak cíl může být typu TCP, RTU nebo ASCII. Formát zdroje: source [options]
FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
Formát pravidla a cíle: id <src id | *> => [options] [id ]
Pomocí zástupného znaku * (hvězdička) lze zadat obecné či nespecifické pravidlo, které se uplatní na všechna ID v příchozích rámcích – relay bude propouštět všechny dotazy. Uplatňují se přednostně specifická pravidla - teprve pokud není nalezeno žádné specifické pravidlo, uplatní se pravidlo obecné. Pokud nezadáme cílové ID pravidla (prostě vynecháme celý člen včetně klíčového slova „id“), zůstaně ID nezměněno – nebude se překládat. Formát definice sériového portu: port <device node>[,option[,option[,option]]] options: - baud rate (default: 9600) - Databits Parity Stopbits (default: 8N1) - FLOW | NOFLOW (default: NOFLOW) - RTU | ASCII (default: RTU)
Device node je jméno speciálního souboru, pod kterým se v Unixu skrývá systémové zařízení. Nejlépe včetně cesty, jména v adresáři /dev i bez cesty. Například /dev/ttyS0 je totéž jako COM1, /dev/ttyS1 je totéž jako COM2 apod. (sériová „konzolová“ zařízení v Unixu jsou číslována od nuly). Jako rychlost portu je možno vybrat z obecně známých typizovaných rychlostí, které jsou charakteristické pro UART 16550A, přesněji které jsou vyjmenovány v hlavičkových souborech systémové knihovny v Linuxu – od 50 bd po 230400 bd. Datových bitů může být 5-8, parita O | E | N, stop bity 1 nebo 2. Flow control je buď hardwarová (RTS+CTS) nebo žádná. Formát definice TCP hostitele: host [:TCP_port]
Nepovinné volby, společné pro sériové i TCP porty: 1) timeouty frame_t pend_t tx_t
2) volby povolující hlášení gatewayových chyb směrem k masteru gw_nopath gw_timeout
= Modbus gateway reports „no path defined for this ID“ = Modbus gateway reports „no response from the slave“
FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
Všechny druhy timeoutů se udávají ve formátu <číslo>[jednotka] bez mezery, např. 10000, 10ms nebo 9ch. Pokud chybí jednotka, použijí se implicitní mikrosekundy – alternativně lze specifikovat jednotku „ms“, „s“ nebo „ch“. Posledně jmenovaná znamená „characters“, tj. násobek ekvivalentu doby odeslání jednoho znaku na dané jmenovité rychlosti sériového portu (počítáno jako 10 bitů). Tato jednotka se hodí především u sběrnic typu Modbus/RTU – tento standard specifikuje konec rámce jako pauzu v délce nejméně 3.5 znaku. Volba frame_t (frame break timeout) znamená maximální povolenou mezeru mezi dvěma znaky, které mají ještě patřit do jednoho rámce. Default pro tento timeout je závislý na typu sběrnice: RTU = 4 * ekvivalent 1 znaku (tj. na rychlosti 9600 bps cca 4-5 ms), norma říká 3.5ch ASCII = 30 sekund (norma říká, že rámce se rozhodně nemají ukončovat podle timeoutu) TCP = 100 ms (norma nestanoví konec rámce na základě timeoutu, ale v praxi běžně přijde jeden Modbus rámec zabalený v jediném TCP rámci, takže nízký timeout dává smysl) Volba pend_t (pending queue timeout) znamená, jak dlouho se má čekat na odpověď po odeslání transakce (resp. po vstupu do syscallu write()) na master portu. Na slave portech „pending“ fronta vůbec není, takže u nich tento timeout nedává smysl. Default je 2 s – takto dlouhý timeout se uplatní na pomalých linkách při TCP komunikaci, takto dlouhá odezva od koncového zařízení je méně pravděpodobná. Volba tx_t (transmit queue timeout) znamená, po jaké době se mají neodeslané transakce čistit z odesílací fronty konkrétního portu (master nebo slave). Z fronty odebírá transakce přirozeným způsobem odesílající thread, který volá write() a na master portech přeřazuje transakce do fronty „právě zpracovávaných transakcí“ (pending queue). Jinak řečeno, pokud je vysílání z nějakého důvodu pomalejší než zařazování dalších transakcí, třeba proto, že se nevracejí odpovědi na odeslané transakce, může se stát, že transakce již zařazené k odeslání vytimeoutují dříve, než se jich ujme odesílací vlákno knihovny. Default je 500 ms pro všechny druhy portů. Pokud se týče signalizace chyb vzniklých na vzdálených sběrnicích, démon relay standardně žádné chybové odpovědi sám negeneruje – pouze transparentně předává standardní chybové odpovědi koncových zařízení, neboť se jedná o standardní Modbusové rámce. Standard Modbus nicméně specifikuje dva druhy chybových odpovědí, které zde připadají v úvahu: 1) Gateway path unavailable Gateway neví, kam má dále poslat přijatý dotaz. V našem případě relay nemá definováno pravidlo, které by mohl uplatnit na zdrojové Modbus Unit ID. Pokud se tento problém vyskytne, jedná se patrně o chybu v konfiguraci celého systému (master, relay, slave). 2) Gateway target device failed to respond Od koncového zařízení nepřišla odpověď (relay zaznamenal timeout transakce). Koncové zařízení (slave) je patrně mrtvé, nebo neexistuje (chyba konfigurace). Konfigurační soubor relay.conf umožňuje povolit hlášení těchto chybových stavů. První hlášku povoluje volba gw_nopath . Tato chybová hláška pomůže odhalit případnou chybu v konfiguraci relaye (pokud nepoužíváme obecná pravidla). Druhou hlášku povoluje volba gw_timeout . Tato chybová hláška pomůže rozlišit chyby před relayem a za relayem. Také může částečně zrychlit provoz v rozsáhlejším Modbusovém systému FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
s nestejně rychlými linkami a cyklickým pollingem, pokud se v něm občas vyskytují mrtvá koncová zařízení. Stačí na nejnižších relayích nastavit rozumně krátký pend_t plus ještě gw_timeout . Díky tomu se master dozví v nejkratší možné době, že vzdálený slave je nedostupný, a nemusí čekat na svůj dlouhý timeout, do kterého se musí vejít všechna koncová zařízení. Poznámka ohledně časové přesnosti Všechny timeouty jsou typicky lehce překračovány směrem nahoru, nikdy dolů. To vyplývá z chování použitých časovacích funkcí operačního systému. Kvůli způsobu implementace použité modbusové knihovny (non-realtime user-space knihovna, nikoli např. kernel-space ovladač) jsou pro časování použity obyčejné user-space časovače. Proto přesnost „frame break timeoutu“ je v řádu cca jednotek ms (bez velké zátěže), pod větší zátěží se timeout protahuje až na cca 10 ms, což je perioda preemptivního systémového plánovače. Aplikace i knihovna jsou napsány pokud možno důsledně tak, aby se vlákna navzájem zbytečně neblokovala a především aby zbytečně nespotřebovávala procesorový čas v nekonečných smyčkách. Bez výraznější zátěže CPU plánovač přepíná úlohy prakticky při každém blokujícím systémovém volání a při každém použití meziprocesové synchronizace. Proto má Relay za normálních okolností přijatelné průchozí zpoždění – u korektních transakcí může zvyšovat latenci snad jen „frame break timeout“ v RTU, který ale pod přiměřenou zátěží není významně překračován. Frontové timeouty jsou o něco méně přesné – mazání z fronty není zařízeno pomocí „řetězených časovačů“, ale pomocí časových značek na transakcích a periodicky spouštěného „garbage collectoru“ (samostatný thread na každém portu, který se pravidelně probouzí – součást knihovny). Perioda garbage collectoru je standardně 200 ms na master portech a 500 ms na slave portech – jedná se o hodnotu, která se zadává při kompilaci knihovny. Doporučujeme vyvarovat se dotazů na slave zařízení, o kterých předem víme, že jsou mrtvá. Mrtvý slave brzdí svou sběrnici. Toto je zřejmě problém hlavně u master portů na sériových sběrnicích s více slave zařízeními. Typický Modbus/TCP slave je na své TCP „sběrnici“ jediným koncovým zařízením, takže zablokuje pouze svůj vlastní port v aplikaci Relay a pak ještě dotazujícího se mastera – dotazy od jiných masterů na ostatní zařízení běží bez problémů dál.
FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
Základy ovládání textového editoru „vi“ Úvod Konfigurace systému a démona Relay se nastavuje editací textových konfiguračních souborů. Vedle jednoduchého vestavěného editoru v souborovém manažeru „mc“ obsahuje operační systém zařízení také tradiční unixový editor „vi“, přesněji jeho klon „VIM – minimal“. Editor se spouští příkazem vi
<jméno souboru>
Dva režimy – prohlížení a vkládání VIčko se od jiných editorů liší tím, že má dva základní režimy: prohlížecí a editační. V prohlížecím režimu se lze po textu pohybovat šipkami, ale písmenka napsaná na klávesnici se do textu nedoplňují. Háček je v tom, že v prohlížecím režimu má spousta písmenek speciální funkce – pohyb, skok na začátek a konec řádku, mazání písmen/slov/řádků apod. Takže není problém i v „prohlížecím“ režimu otevřený soubor nějak nabourat. V editačním=vkládacím režimu se editor chová podobně, jako kterýkoli příbuzný. Po startu je editor automaticky v prohlížecím režimu. Do vkládacího režimu se lze dostat příkazem „i“ nebo na lokální konzoli klávesou Ins. Zpátky z vkládacího režimu do prohlížecího se lze dostat klávesou Esc.
Jak z toho ven? Pokud se dostanete do problémů, např. pokud se Vám podařilo v prohlížecím režimu něco smazat, nebo si prostě nejste jisti, co se právě děje, nejjednodušší bude „vystoupit a nastoupit“. Vystoupit lze takto: -
stiskněte jednou či vícekrát Esc, a počkejte asi 2 s – editor vyskočí z vkládacího režimu (pokud v něm zrovna je), pokud je v prohlížecím režimu tak zruší případné rozepsané vícepísmenné kombo příkazy. Nespárovaný Escape vyvolá pouze varovné pípnutí (pokud je v terminálu povoleno).
-
pokud máte pocit, že by stačilo Undo, zkuste zmačknout „u“ – jste v prohlížecím režimu, takže písmenko „u“ znamená Undo. Tato funkce umí vrátit i více kroků.
-
pokud byste raději „vystoupili a nastoupili“, zadejte sekvenci „:q“ a Enter (= Quit), tj. „dvojtečka kvé Enter“ FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
-
pokud se editor brání, že byly v souboru provedeny změny, a že tyto nejsou uloženy, zadejte „:q!“ a Enter (= konec, bez připomínek!) – Vaše úpravy se neuloží a editor vyskočí zpátky do příkazového řádku.
-
pokud nicméně chcete změny uložit, máte možnost: příslušná sekvence je „:w“ Enter (=Write) a pak teprve „:q“ Enter, případně rovnou kombo „:wq“ Enter
Co to umí užitečného Na lokální konzoli fungují klávesy Home, End, PageUp a PageDown. Pohybové příkazy (v prohlížecím režimu) jsou: 0, $ = začátek a konec řádku b, e = začátek a konec slova w = konec slova, jako oddělovače fungují mezery, tečky, pomlčky… W = konec slova, jako oddělovače se uvažují výhradně mezery G = jdi na konec souboru 1G = jdi na první řádek souboru <číslo>G = jdi na uvedený řádek v souboru Příkazy, spouštějící vkládací režim: (ukončuje ho vždy Esc) i = začít vkládat zde (insert) I = začít vkládat od začátku řádku (Insert) a = začít vkládat za tímto znakem (append) A = začít vkládat na konci řádku (Append) o = začít nový řádek za aktuálním řádkem O = začít nový řádek před aktuálním řádkem cw = změnit do konce slova cW = změnit do konce slova (oddělovače pouze mezery) c$ = změnit do konce řádku r<nový> = změň znak pod kursorem na <nový> (nevstupuje do vkládacího režimu) Mazací příkazy (v prohlížecím režimu): x, Del = smaž aktuální znak (pod kurzorem) dw = smaž do konce slova dW = smaž do konce slova (oddělovače pouze mezery) dd = smaž aktuální řádek d$ = smaž do konce aktuálního řádku Příkazy pro blokovou manipulaci yy = zkopíruj aktuální řádek do clipboardu yw = zkopíruj aktuální slovo do clipboardu y$ = zkopíruj vše do konce řádku do clipboardu y<pohyb dolů> = zkopíruj do clipboardu dva řádky p = vlož na aktuální pozici FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz
Hledací příkazy / = hledej dolů ? = hledej nahoru n = hledej další stejným směrem N = hledej další opačným směrem % = skoč na odpovídající párovou závorku Undo, redo . = znovu poslední vkládací/změnovou operaci u = zpět (undo) - pamatuje si více kroků. U = zpět (undo) pro všechny změny na lokálním řádku. Další příkazy J = připoj následující řádek za aktuální řádek Uložení dat a ukončení :w = uložit :w <soubor> = uložit pod jménem <soubor> (pozor, aktuální buffer si podrží staré jméno!) :w! = uložit, přestože je soubor read-only :q = konec :q! = konec, přestože má aktuální soubor neuložené změny :wq = uložit a konec
Úvod do ovládání editoru VIM http://www.kit.vslib.cz/~satrapa/docs/vim/index.htm
FCC Průmyslové Systémy s.r.o., SNP 8, 400 11 Ústí nad Labem Telefon: +420 47 2774 173, Fax: +420 47 2772 115, Web: http://www.fccps.cz