EVIA Paradigma-ն տեսողական ծրագրավորում է. բլոկները գունապնակից քաշեք կտավի վրա, միացրեք դրանք կապերով և սեղմեք Run։ Նույն ծրագիրը կարելի է վերածել C (C99, C11, C17) կամ C++ (C++98-ից մինչև C++20) կոդի և կառուցել Clang-ով կամ GCC-ով, ինչպես նաև Arduino և ESP32 տախտակների կոդի։ Ծրագրի ինտերֆեյսն անգլերեն է, ուստի ընտրացանկերի և կոճակների անունները բերված են այնպես, ինչպես երևում են էկրանին։
Միջերեսն ինքը նույնպես կարող է լինել անգլերեն, ռուսերեն կամ հայերեն՝ Կարգավորումներ > Միջերեսի լեզուն։ Ընտրացանկերը, կոճակները, ներկապնակը և բլոկների անունները փոխվում են դրա հետ. ստեղծված կոդը և կոմպիլյատորների հաղորդագրությունները մնում են անգլերեն։ Փոփոխությունը ուժի մեջ է մտնում EVIA Paradigma-ի հաջորդ գործարկման ժամանակ։
Տեսք և լեզու։ View > Theme-ը ընտրում է IntelliJ-ի բաց թեման, Darcula մուգ թեման կամ ձեր համակարգի կարգավորումը. թեման փոխվում է անմիջապես և հիշվում է։ Բաժինների ցանկի վերևում կարելի է ընտրել այս ուղեցույցի լեզուն՝ անգլերեն, ռուսերեն կամ հայերեն։
| Բլոկ | Կոդ | Ինչ է անում |
|---|---|---|
| Start / End | - | Որտեղ է սկսվում և ավարտվում գլխավոր ծրագիրը։ |
| Set | x = x + 1 | Արժեք է վերագրում փոփոխականին (կամ դաշտին՝ this.count = 0)։ |
| Input | n | Հարցնում է արժեք և պահում այն։ |
"x = " + x | Տպում է արտահայտության արժեքը։ | |
| If / Else | x > 10 | Երկու ելք՝ then և else։ |
| For | i = 1; i <= 10; i = i + 1 | body ելքը կատարվում է, քանի դեռ պայմանը ճշմարիտ է. մարմնի վերջը միացրեք հետ՝ For բլոկին։ done-ը շարունակում է ծրագիրը ցիկլից հետո։ |
| While | n > 0 | Ստուգում է պայմանը յուրաքանչյուր անցումից առաջ։ |
| Do-While | n > 0 | Մարմինը կատարում է մեկ անգամ, ապա ստուգում։ |
| Enter / Exit | ելքի անունը | Միայն դասի մեթոդի ներսում. որտեղ է այն սկսվում և ինչպես կարող է ավարտվել։ |
Board բլոկները (Pin Mode, Digital Write, Digital Read, Analog Read, Analog Write, Delay, Millis, UART, SPI, I2C) միկրոկոնտրոլերների համար են. տե՛ս Arduino և ESP32 տախտակներ բաժինը։
Արժեքները թվեր են կամ տեքստ։ Օպերատորները՝ ցածրագույն առաջնահերթությունից դեպի բարձրագույն.
|| &&== != < <= > >= (տեքստերը համեմատվում են այբբենական կարգով)+ - (+-ը միացնում է տեքստը, եթե որևէ կողմը տեքստ է)* / %- և !, փակագծերՏեքստը գրվում է կրկնակի չակերտներով. թույլատրվում են \", \\, \n
escape-հաջորդականությունները։ Պայմանը ճշմարիտ է, եթե դա ոչ զրոյական թիվ է կամ ոչ դատարկ տեքստ։
Դասը միավորում է դաշտերը (տվյալներ, որոնք պահում է յուրաքանչյուր օբյեկտ) և մեթոդները (բլոկային ծրագրեր, որոնք աշխատում են այդ տվյալների հետ)։ Ստեղծեք այն Edit > New Class-ով, գունապնակի + New class-ով կամ նշեք բլոկները և սեղմեք Ctrl+G՝ դրանք դաս դարձնելու համար։
this.անուն։n պարամետրը կարդացվում է որպես this.n։init անունով մեթոդ (կոճակ՝ + Constructor)։ Օբյեկտ ստեղծելիս նրա դաշտերը նախ
ստանում են սկզբնական արժեքները, ապա մեկ անգամ կատարվում է init-ը։Մեթոդը կանչելու համար այն գունապնակի Classes բաժնից քաշեք կտավի վրա։ Բլոկի վրա աջ կամ կրկնակի սեղմումով ընտրվում են մեթոդը, օբյեկտը և արգումենտները։ Նույն օբյեկտի անունով բլոկները աշխատում են մեկ օբյեկտի հետ (և նրա դաշտերի). առանց օբյեկտի անվան բլոկն ունի իր սեփական օբյեկտը։ Օբյեկտները ստեղծվում են առաջին օգտագործման ժամանակ։
Մոդուլը (*.eviam) դասերի ֆայլ է, որը կարող են օգտագործել մի քանի ծրագրեր։
File > New Project-ը ստեղծում է թղթապանակ՝ ծրագրին անհրաժեշտ ամեն ինչով.
MyProject/ MyProject.eviaproj նախագծի կարգավորումներ main.evia գլխավոր ծրագիրը modules/ դասերի մոդուլներ build/ գեներացված կոդ (չի մտնում commit-ների մեջ) README.md .gitignore
Նախագիծը նորից բացեք File > Open Project-ով (ընտրեք թղթապանակը կամ .eviaproj ֆայլը)։ Նախագծում մոդուլները
ներմուծվում են modules/-ից և արտահանվում են այնտեղ, իսկ Generate code-ը լրացուցիչ գրում է
build/<անուն>.c կամ .cpp։ Նախագիծը հիշում է իր լեզուն։
Git ընտրացանկը գործարկում է ձեր համակարգչում տեղադրված git-ը և օգտագործում է արդեն կարգավորված մուտքը
(Git Credential Manager, SSH բանալի կամ gh auth login)։ EVIA Paradigma-ն երբեք չի խնդրում և չի պահում
գաղտնաբառեր կամ թոքեններ։
git init main ճյուղում (նոր նախագծերը դա անում են ինքնուրույն, եթե git-ը տեղադրված է)։սեփականատեր/պահոց կամ կլոնավորման URL։ Create repository on GitHub-ը
բացում է github.com-ը զննարկչում՝ անունն արդեն լրացված. ստեղծեք դատարկ պահոց և սեղմեք OK։Տեղադրեք git-ը git-scm.com-ից, եթե ընտրացանկը ասում է, որ այն բացակայում է։
Generate code (F7)-ը ամբողջ ծրագիրը վերածում է մեկ սկզբնական ֆայլի։ Գործիքագոտու երեք բացվող ցանկերը (և կոդի պատուհանում) որոշում են արդյունքը. նույն ընտրությունները կան Run > Code Language and Mode-ում։ Կոդի պատուհանում դրանք փոխելիս կոդը նորից է գեներացվում։
| Ցանկ | Տարբերակներ | Ինչն է փոխվում |
|---|---|---|
| Language | C99, C11, C17 C++98, C++11, C++14, C++17, C++20 |
C. յուրաքանչյուր դասի համար struct և Class_m_method(self, ...) ֆունկցիաներ, փոքր runtime՝ միայն
այն օգնականներով, որոնք օգտագործում է ծրագիրը։ C++. յուրաքանչյուր դասի համար անդամ-ֆունկցիաներով struct.
C++98-ը օգտագործում է սովորական ցուցիչներ, C++11/14-ը՝ std::unique_ptr, C++17/20-ը՝
std::variant և std::to_chars։ |
| Flow | Structured Goto |
Structured. if/else, for, while, do/while
և switch (պիտակներ՝ միայն այնտեղ, որտեղ կապերը չեն տեղավորվում բլոկային կառուցվածքի մեջ)։ Goto. յուրաքանչյուր բլոկ
պիտակ է, իսկ յուրաքանչյուր կապ՝ անցում, ամենամոտը սխեմային։ |
| Values | Safe Fast |
Safe. թվեր և տեքստ՝ ինտերպրետատորի բոլոր ստուգումներով (չսահմանված փոփոխականներ, բաժանում զրոյի, թիվ չհանդիսացող տեքստ,
անվերջ ռեկուրսիա)։ Fast. պարզ double փոփոխականներ և դաշտեր, տեքստ՝ միայն Print-ում, առանց
կատարման ժամանակի ստուգումների։ Այն ծրագիրը, որը տեքստ է պահում փոփոխականում, չի կարող օգտագործել Fast արժեքներ.
Generate code-ը կասի, թե որ բլոկն է խանգարում։ |
Յուրաքանչյուր համակցություն ստուգված է. ելքը համընկնում է ինտերպրետատորի ելքի հետ (Fast արժեքների դեպքում՝ առանց սխալների աշխատող ծրագրերի համար)։ Բլոկի, մեթոդի կամ դասի վրա աջ սեղմում → View source code՝ տեսնելու այն կոդը, որ դարձել է, լուսավորված, ձեր ընտրած լեզվով։
Կոդի պատուհանը կարող է պահել ֆայլը, կառուցել այն և գործարկել։ C-ի համար օգտագործվում է համապատասխան C կոմպիլյատորը
(clang, gcc), ճիշտ -std= և -lm։ Կոմպիլյատորն ընտրվում է Settings-ում. Clang
(clang++ / clang) կամ GCC (g++ / gcc, տարբերակ 13 կամ ավելի նոր)։ Windows-ում EVIA Paradigma-ն կարող է դրանցից ցանկացածը
տեղադրել ինքնուրույն. llvm-mingw (Clang) կամ WinLibs (GCC, MinGW-w64)։ Visual Studio-ն պետք չէ։
Եվս երեք լեզու կոդ են ստեղծում միկրոկոնտրոլերների համար։ Երկուսն էլ օգտագործում են արագ արժեքներ (թվեր. տեքստ՝ միայն Print-ում), իսկ Print-ը և Input-ը աշխատում են սերիական պորտով՝ 115200 բոդ արագությամբ։
| Լեզու | Տախտակներ | Ինչով է կառուցվում |
|---|---|---|
| Arduino | Arduino Uno, Nano, Mega 2560, Leonardo, Micro, Pro Mini; ESP32, ESP32-S2, -S3, -C3, -C6, -H2 |
Մեկ սքեթչ (.ino)՝ setup() և loop()-ով. arduino-cli՝ arduino:avr և
esp32:esp32 միջուկներով։ |
| AVR C | Arduino-ի վեց AVR տախտակները (ATmega328P, ATmega2560, ATmega32U4) | Bare-metal C՝ առանց Arduino միջուկի։ Պինները, թայմերները, PWM-ը, ADC-ն և UART-ը կառավարվում են չիպի ռեգիստրներով։ Կառուցում են avr-gcc-ն և avr-libc-ը, բեռնում է avrdude-ը։ |
| PIC32 C | ինը PIC32MX չիպ. MX1xx/2xx (PIC32MX150F128B, 250F128B, 270F256B), MX3xx/4xx (320F128H, 340F512H, 440F256H, 460F512L), MX5xx/6xx/7xx (695F512L, 795F512L) և PIC32 Ethernet Starter Kit II (LED1՝ RD0-ին) | Bare-metal C Microchip-ի XC32-ի համար. ժամացույցը, պինները, PWM-ը, ADC-ն, UART-ը, SPI-ն և I2C-ն կառավարվում են ռեգիստրներով, առանց Harmony-ի և plib-ի։
Կառուցում է xc32-gcc-ն, .hex-ը ստեղծում է xc32-bin2hex-ը, իսկ բեռնում է ձեր ընտրած հրամանը (լռելյայն՝ pic32prog)։ |
Տախտակն ընտրվում է լեզվի կողքի Board ցանկում (նաև Settings-ում)։ Կոդի պատուհանի Build-ը ծրագիրը կառուցում է դրա համար. Upload-ը կառուցում է և ուղարկում ծրագիրը տախտակին՝ Settings-ում նշված սերիական պորտով։
| Բլոկ | Կոդ | Ինչ է անում |
|---|---|---|
| Pin Mode | LED_BUILTIN, OUTPUT | OUTPUT, INPUT կամ INPUT_PULLUP (գետնին միացված կոճակը սեղմելիս կարդացվում է LOW)։ |
| Digital Write | LED_BUILTIN, HIGH | HIGH՝ ցանկացած ոչ զրոյական արժեքի համար, LOW՝ 0-ի համար։ |
| Digital Read | pressed = 4 | Պահում է 1 (HIGH) կամ 0 (LOW)։ |
| Analog Read | level = A0 | 0..1023 AVR տախտակներում, 0..4095 ESP32-ում։ |
| Analog Write | 5, brightness | PWM՝ 0-ից (անջատված) մինչև 255 (միշտ միացված)։ |
| Delay | 500 | Սպասում է այդքան միլիվայրկյան։ |
| Millis | t | Պահում է ծրագրի սկզբից անցած միլիվայրկյանները։ |
| UART Open | 9600 | Գործարկում է UART բլոկների սերիական պորտը այդ բոդ արագությամբ։ |
| UART Write | 65 | Ուղարկում է մեկ բայթ (0..255)։ |
| UART Read | c | Պահում է հաջորդ ստացված բայթը, կամ -1, եթե ոչինչ չի եկել։ |
| SPI Open | 1000000 | Գործարկում է SPI-ը որպես master այդ հաճախականությամբ (Հց), ռեժիմ 0, ավագ բիտը առաջինը։ |
| SPI Transfer | reply = 66 | Ուղարկում է բայթ և պահում է միաժամանակ ստացված բայթը։ |
| I2C Open | 100000 | Գործարկում է I2C-ն որպես master այդ հաճախականությամբ (Հց)։ |
| I2C Write | 80, 0, 42 | Արժեք է գրում այդ 7-բիթանոց հասցեով սարքի ռեգիստրում. հասցե, ռեգիստր, արժեք։ |
| I2C Read | v = 80, 0 | Պահում է ռեգիստրի արժեքը, կամ -1, եթե այդ հասցեով սարք չի պատասխանում։ |
| MQTT Connect | "network", "password", "broker.example.com", 1883 | Միանում է ցանցին և MQTT բրոքերին։ |
| MQTT Publish | "evia/temperature", t | Ուղարկում է հաղորդագրություն այդ թեմայով՝ թիվ կամ տեքստ։ |
| MQTT Subscribe | "evia/command" | Բրոքերից խնդրում է այդ թեմայի հաղորդագրությունները (մինչև չորս թեմա)։ |
| MQTT Has Message | waiting = "evia/command" | Պահում է 1, եթե այդ թեմայի հաղորդագրություն սպասում է, և 0՝ հակառակ դեպքում։ |
| MQTT Read | cmd = "evia/command" | Պահում է հաջորդ հաղորդագրության թիվը, կամ -1, եթե ոչինչ չի եկել։ |
MQTT։ Ցանցի անունը, գաղտնաբառը, բրոքերը և թեմաները ֆիքսված տեքստեր են, քանի որ դրանք գրվում են ծրագրի մեջ կառուցելիս։ PIC32 C-ն AT որոնվածքով ESP8266 կամ ESP32 մոդուլ է վարում UART2-ով (RB5/RB1՝ 28-կոնտակտանի չիպերում, RF4/RF5՝ մյուսներում), այնպես որ Print-ը մնում է UART1-ին։ Arduino-ն ESP32 տախտակի վրա օգտագործում է տախտակի սեփական WiFi-ը։ Run-ը պատասխանում է ձեր համակարգչի բրոքերից՝ բաժանորդագրված թեմայում հրապարակելը վերադարձնում է հաղորդագրությունը։ AVR տախտակը մերժում է MQTT բլոկները (մեկ սերիական պորտ, որը զբաղեցնում է Print-ը), FPGA-ն նույնպես։ Հաղորդագրությունը թիվ է՝ գրված այնպես, ինչպես Print-ն է գրում. քանի որ -1-ը նաև նշանակում է «ոչինչ չի եկել», MQTT Has Message-ը տարբերում է իրական -1-ը։ MQTT-ն կարող է անցնել նաև MX695F512L, MX795F512L չիպերի և Ethernet Starter Kit II-ի սեփական Ethernet պորտով. կարգավորումներում ընտրեք PIC32-ի MQTT-ն՝ → Ethernet, և գեներացված ֆայլը դառնում է MPLAB X Harmony ծրագրի հավելված, որը բերում է TCP/IP փաթեթը։ Այս ուղին փորձարարական է. այն այստեղ կոմպիլացվում է վերնագրերի կաղապարներով, բայց երբևէ չի կառուցվել իրական Harmony-ով և չի աշխատեցվել տախտակի վրա, այդ պատճառով ստուգվածը մնում է WiFi մոդուլը։
MQTT Ethernet-ով (փորձարարական)։ MX695F512L-ի, MX795F512L-ի և PIC32 Ethernet Starter Kit II-ի համար Settings > PIC32 MQTT over > Ethernet-ը ստացվող ֆայլը դարձնում է MPLAB X Harmony նախագծի հավելված՝ TCP/IP փաթեթը տալիս է Harmony-ն, կազմաձևումը, տակտը և main()-ը մնում են նախագծին, իսկ դուք այնտեղից կանչում եք app_run()։ Միացրեք TCP-ն, DHCP և DNS հաճախորդները, Ethernet MAC վարորդը և տախտակի PHY-ը (LAN8740 այս հավաքածուում)։ Հասցեն տալիս է DHCP-ն, ուստի ցանցի անունը և գաղտնաբառը չեն օգտագործվում։ Այս ուղին ստուգումներում կոմպիլացվում է վերնագրերի կրկնօրինակներով, բայց չի կառուցվել իրական Harmony-ով և չի գործարկվել տախտակի վրա. ստուգվածը WiFi մոդուլն է։
Պինները կարող են լինել թվեր, արտահայտություններ կամ տախտակի LED_BUILTIN, A0 ... A15
անունները. HIGH և LOW աշխատում են ցանկացած արտահայտության մեջ։ Այս անունները չի կարելի օգտագործել
որպես փոփոխականներ։
Գծերի (bus) բլոկները աշխատում են Run-ում և տախտակների բոլոր երեք լեզուներում։ Օգտագործելուց առաջ գիծը պետք է բացել. հասցեները 7-բիթանոց են, թվերը՝ տասնորդական (80-ը 0x50-ն է)։ PIC32-ում պինները ֆիքսված են չիպի ընտանիքի համար և նշված են ստեղծված կոդի սկզբում (չիպի UART1, SPI և I2C1)։ Run-ը նմանակում է գծերը. UART-ի հաղորդիչը միացված է նրա ընդունիչին, ուստի UART Write-ի բայթերը վերադառնում են UART Read-ով (և երևում են նաև ելքում որպես տեքստ), SPI-ի մուտքը միացված է նրա ելքին, իսկ 80 հասցեով պատասխանում է 256 ռեգիստրով մեկ I2C սարք։
Run-ը նմանակում է Arduino Uno. պինների փոփոխությունները ելքում երևում են board [500 ms] pin 13 HIGH տեսքով,
ժամանակը առաջ է գնում միայն Delay-ում (գլխավոր պատուհանը նաև իրականում սպասում է, եթե արագության սահողը լրիվ արագության վրա չէ),
յուրաքանչյուր մուտքային պինի կոճակը սեղմվում է ամեն 2 վայրկյանի երկրորդ կեսին, իսկ անալոգային պինները կարդում են դանդաղ
0..1023..0 ալիք։ Ծրագիրը կատարվում է մեկ անգամ, կարծես setup()-ից. դրանից հետո պինները պահում են իրենց վիճակը։
File > Open Example > Arduino and ESP32 Boards-ում կան օրինակներ՝ blink, button, fade, analog meter, Led դաս և UART, SPI ու I2C օրինակներ։
Համակարգչի լեզուները (C, C++) չեն կարող օգտագործել Board բլոկները. Generate code-ը կասի, թե որ բլոկը փոխել։
Եվս երեք լեզու՝ SystemVerilog, Verilog-2001 և VHDL (VHDL-2008), նույն սխեման դարձնում են սարքակազմ։ Յուրաքանչյուր բլոկ վերջավոր ավտոմատի մեկ վիճակ է և տևում է մեկ տակտ։ Փոփոխականները նշանով 32-բիթանոց ռեգիստրներ են։
| Տախտակ | Չիպ | Հաճախություն | Հասանելի կոնտակտներ |
|---|---|---|---|
| Digilent Nexys A7-100T | Artix-7 XC7A100T | 100 ՄՀց | LED0-15, SW0-15, BTNC/U/L/R/D, JA-JD, USB-UART |
| Digilent Arty A7-35 / A7-100 | Artix-7 | 100 ՄՀց | 4 LED, 4 անջատիչ, 4 կոճակ, JA-JD, USB-UART |
| Digilent Basys 3 | Artix-7 XC7A35T | 100 ՄՀց | 16 LED, 16 անջատիչ, 5 կոճակ, JA-JC, USB-UART |
| Olimex GateMateA1-EVB | GateMate CCGM1A1 | 10 ՄՀց | LED0, BTN0, վրիպազերծման UART |
| Cologne Chip GateMate A1 evaluation board | GateMate CCGM1A1 | 10 ՄՀց | միայն LED0 |
Կոնտակտները ֆիքսվում են կառուցելիս, ուստի կոնտակտը պետք է լինի թիվ կամ անուն՝ LED0, SW3, BTNC, BTN0, JA1։ Եթե տախտակը այդպիսի կոնտակտ չունի, սխալը ցույց է տալիս առկաների ցանկը։ Կոնտակտը չի կարելի միաժամանակ կարդալ և գրել։
Ամբողջ թվեր։ Թվաբանությունը 32 բիթով շրջվում է; / և % կլորացնում են դեպի զրո, 0-ի բաժանումը տալիս է 0։ Գործարկումը օգտագործում է double թվեր, ուստի 5 / 2-ը Գործարկման մեջ 2.5 է, իսկ FPGA-ում՝ 2։ Դեռ չեն աջակցվում՝ դասերը, Input, Analog Read, SPI, I2C և տեքստը փոփոխականներում (Print-ում տեքստը աշխատում է)։
Կառուցում և բեռնում։ Artix-7՝ Vivado խմբաքանակային ռեժիմով կամ բաց շղթա (yosys, nextpnr-xilinx, Project X-Ray), ընտրվում է Կարգավորումներում։ GateMate՝ yosys, nextpnr-himbaechel, gmpack։ Բեռնումը՝ Vivado կամ openFPGALoader։ Կոնտակտների սահմանափակումները ֆայլի առաջին մեկնաբանության մեջ են, իսկ հրամանի տողում -o-ն գրում է նաև .xdc կամ .ccf ֆայլ։
Ստուգված է՝ սիմուլյացիա՝ Գործարկման հետ համեմատած, և սինթեզ բաց գործիքներով։ Ստուգված չէ՝ Vivado, openXC7 և իրական տախտակներ։
Օրինակներ՝ File > Open Example > FPGA Boards։
| Ctrl+N | Նոր ծրագիր |
| Ctrl+Shift+N | Նոր նախագիծ |
| Ctrl+O | Բացել ծրագիր |
| Ctrl+S / Ctrl+Shift+S | Պահել / Պահել որպես |
| Ctrl+A | Նշել բոլոր բլոկները |
| Delete | Ջնջել նշված բլոկները |
| Ctrl+G | Նշված բլոկները խմբավորել դասի մեջ |
| F5 / Shift+F5 | Գործարկել / Կանգնեցնել |
| F7 | Գեներացնել կոդը |
| Մկնիկի անիվ | Սխեման մոտեցնել կամ հեռացնել ցուցիչի ուղղությամբ (25%-ից մինչև 300%) |
| Shift+անիվ / Ctrl+անիվ | Ոլորել կողքերին / վերև և ներքև |
| Միջին կոճակ + քաշել | Տեղափոխել կտավը (կարելի է սկսել նաև բլոկից) |
| Ctrl+= / Ctrl+- | Մոտեցնել / հեռացնել |
| Ctrl+0 / Ctrl+9 | Իրական չափս (100%) / սխեման տեղավորել պատուհանում |
| Ctrl+K | Git commit |
| F1 | Այս ուղեցույցը |
| Shift+սեղմում, ուղղանկյան քաշում | Նշել մի քանի բլոկ |
| Աջ սեղմում բլոկի վրա | Բլոկի ընտրացանկ (խմբագրել, View source code, ջնջել ...) |
Կոդի դաշտերը, կոդի պատուհանը և commit-ի հաղորդագրության խմբագրիչը աշխատում են Vim ստեղներով (անջատվում են Settings-ում)։ Տեքստը բացվում է ներդրման ռեժիմում. Esc-ը անցնում է նորմալ ռեժիմի։
h j k l, w b e, 0 ^ $, gg G, %, f ti a I A o O, x, dd, cw, yy, p, u, Ctrl+R, .v, V. որոնում. /տեքստ, n N, *:w ընդունել/պահել, :q փակել, :wq, :s/a/b/g, :make կառուցել և գործարկել (կոդի պատուհան), :vim բացել իրական Vim-ում