Inhoud
Terminal Tekst Editor Vi
Terminal Tekst Editor Vi = tekst aanpassen in de terminal.
Waarom zou je dat willen ? Omdat het kan ! En omdat het oh zo handig is. Als je het eenmaal door hebt.
Met vi kun je:
- terminal commando's invoeren en aanpassen
- een tekst bestand maken en aanpassen
- dit met root rechten doen
zie ook Linux Terminal - Bash Shell
Hoe doe je dat ?
Ga het bekijken en laat het je voor doen, en zoek een youtube demo !
Zoek op het internet en/of in youtube op :
- linux vi editor tutorial
- linux vi editor handleiding
- linux vi editor cheat sheet
Vi Editor Handleidingen voor beginners
- VI Editor - Linux Tutorial (grappig met de taalfouten in de ondertiteling )
- Deze hoort bij de utuub demo VI Editor - Linux Tutorial hierboven
Vi Editor - Basis
Ter info : letters zijn tekst en commando's. Het ingeven van een commando ? Eerst de ESCAPE toets indrukken. Je komt zo in command mode. Je kunt nu commando letters toepassen, totdat je er een doet, die je terugbrengt in tekst mode. Om een volgende commando te geven druk je eerst weer op de escape toets
Maak een nieuw bestand :
vi mijnbestand.txt
je zit meteen in tekst invoeg mode
begin met tekst typen. Ook de enter doet het gewoon. Tiep er een eind op los.
Druk de escape toets in
Het bestand opslaan met het commando :w
Het bestand opslaan en afsluiten met het commando :wq
Het bestand zonder opslaan afsluiten met het commando :q!
Het bestand bekijken met : cat mijnbestand.txt
Het bestand weer openen met : vi mijnbestand.txt
je zit alweer meteen in tekst invoeg mode
Druk de escape toets in
Gebruik de commando's h,j,k,l om door de tekst te stappen, regel voor regel, letter voor letter. Ontdek zelf wat welke letter doet.
Gebruik de 0 en de $ om naar het begin en het eind van een regel te springen
Gebruik de w en de b om een woord vooruit of een woord terug te springen
type een A in (het append op het einde van de regel commando), hiermee spring je naar het einde van de regel en je kunt meteen weer beginnen met tekst typen. Met een Enter begin je een nieuwe regel.
Dan druk de escape toets in
wandel naar een andere plek in de tekst (zie boven)
Gebruik de 0 om naar het begin van een regel te springen
Naar regel 1 : Naar de laatste regel
Naar het begin midden of einde van het scherm : H M of L
Gebruik dd om de hele regel te deleten.
Gebruik de k om een regel omhoog te stappen
Gebruik yy om de regel te kopiereen
Loop met de k of de l omhoog of omlaag
Gebruik de p om de gekopieerde regel op deze plaats te plakken
Dan tiep weer een i (het insert commando), en je kunt weer tekst in typen.
Het bestand afsluiten met het commando :wq
Enzovoort
Bij twijfel het bestand afsluiten met het commando :q!
Vi Editor - Waarschuwing
Wat moet je in Vi NIET DOEN ? :
- met de muis omhoog en omlaag scrollen
De muis gebruiken mag wel, maar alleen voor :
- het selecteren van tekst, mbv de linker muis
- het plakken van tekst, met de middelste muis. Wel eerst Vi in insert mode zetten ! (met ESC i)
Vi Editor Handleidingen
vi jouw standaard Editor maken ?
Vi Editor Spiekbladen
Spiekbladen (cheatsheet, reference card), handig als je de basis door hebt :
https://www.atmos.albany.edu/daes/atmclasses/atm350/vi_cheat_sheet.pdf
Vi Editor en systeembeheer bestanden
Voorbeeld rondom het aanpassen van /etc/hostname, /etc/hosts en /etc/fstab:
Voor het aanpassen van de configuratie bestanden in /etc moet je root rechten hebben.
Met root rechten in de terminal wel oppassen. Dus wat vi betreft : oefenen met onbelangrijke bestanden.
Het onderstaande dus alleen doen als je de Vi Editor basisvaardigheden in de vingers hebt !
Nogmaals : het ingeven van een commando ? Eerst de ESCAPE toets indrukken. Je komt zo in command mode. Je kunt nu commando letters toepassen, totdat je er een doet, die je terugbrengt in tekst mode. Het volgende commando gaat dan weer vooraf door de escape toets
Het bestand afsluiten met het commando :wq
Bij twijfel het bestand afsluiten met het commando :q!
Voordat je een bestand aanpast is het verstandig een backup te maken
# cp /etc/fstab /etc/fstab_20230326 # cp /etc/hosts /etc/hosts_20230326
su - root whoami pwd cd /etc # de basis vaardigheden loslaten om de gewenste wijziging uit te voeren vi /etc/hosts vi /etc/fstab exit whoami pwd
Vi volgens Duck AI
TTo edit text in the Linux terminal using vi (or vim, its improved version), follow these steps:
—
### 1. Open a File with vi
vi filename.txt ``` - Replace `filename.txt` with your file name. - If the file doesn’t exist, vi will create it when you save.
—
### 2. Vi Modes Vi has three main modes: - Command Mode (default) – For navigation and commands. - Insert Mode – For typing text. - Visual Mode – For selecting text.
—
### 3. Basic Commands
#### Enter Insert Mode (to type text) - Press `i` to insert before the cursor. - Press `a` to insert after the cursor. - Press `o` to insert a new line below. - Press `O` to insert a new line above.
#### Exit Insert Mode - Press `Esc` to return to Command Mode.
#### Save & Quit - `:wq` → Save and quit. - `:q!` → Quit without saving (force quit).
#### Navigation (Command Mode) - `h` → Left - `j` → Down - `k` → Up - `l` → Right - `gg` → Go to the start of the file. - `G` → Go to the end of the file. - `:10` → Go to line 10.
#### Editing Text - `x` → Delete a character. - `dd` → Delete a line. - `yy` → Copy (yank) a line. - `p` → Paste after cursor. - `u` → Undo last change. - `Ctrl + r` → Redo.
—
### 4. Example Workflow 1. Open a file:
vi example.txt
2. Press `i` to enter Insert Mode. 3. Type your text. 4. Press `Esc` to exit Insert Mode. 5. Save and quit:
:wq
—
### 5. Advanced Tips - Search: Type `/search_term` and press `Enter`. - Replace: `:s/old/new/g` (replace all occurrences in a line). - Multiple Files: Open multiple files with `vi file1.txt file2.txt`.
—
### 6. Exit Without Saving If you made changes but don’t want to save:
:q! ```
—
Vi has a steep learning curve, but mastering it makes you much faster in the terminal! 🚀
Would you like a cheat sheet or more advanced commands?
Here’s a comprehensive Vi/Vim cheat sheet for efficient text editing in the Linux terminal.
—
## 📌 Vi/Vim Cheat Sheet
### 🔹 Modes
| Key | Action |
| —– | ——– |
| `i` | Enter Insert Mode (before cursor) |
| `a` | Enter Insert Mode (after cursor) |
| `I` | Insert at the start of the line |
| `A` | Insert at the end of the line |
| `o` | Insert a new line below |
| `O` | Insert a new line above |
| `Esc` | Return to Command Mode |
| `v` | Enter Visual Mode (select text) |
| `V` | Enter Visual Line Mode (select lines) |
| `Ctrl + v` | Enter Visual Block Mode (select blocks) |
—
### 🔹 Navigation (Command Mode)
| Key | Action |
| —– | ——– |
| `h` | Move left |
| `j` | Move down |
| `k` | Move up |
| `l` | Move right |
| `w` | Move forward by word |
| `b` | Move backward by word |
| `0` | Go to start of line |
| `$` | Go to end of line |
| `gg` | Go to start of file |
| `G` | Go to end of file |
| `:10` | Go to line 10 |
| `Ctrl + f` | Page down |
| `Ctrl + b` | Page up |
—
### 🔹 Editing (Command Mode)
| Key | Action |
| —– | ——– |
| `x` | Delete character under cursor |
| `dd` | Delete (cut) current line |
| `yy` | Copy (yank) current line |
| `p` | Paste after cursor |
| `P` | Paste before cursor |
| `u` | Undo last change |
| `Ctrl + r` | Redo |
| `r` | Replace single character |
| `R` | Overwrite mode (replace multiple chars) |
| `~` | Toggle case of character |
| `»` | Indent line right |
| `«` | Unindent line left |
—
### 🔹 Saving & Exiting
| Command | Action |
| ——— | ——– |
| `:w` | Save file |
| `:wq` | Save & quit |
| `:q!` | Quit without saving |
| `:w newfile.txt` | Save as new file |
| `:e filename` | Open another file |
| `:split filename` | Split window horizontally |
| `:vsplit filename` | Split window vertically |
—
### 🔹 Search & Replace
| Command | Action |
| ——— | ——– |
| `/search_term` | Search forward |
| `?search_term` | Search backward |
| `n` | Go to next match |
| `N` | Go to previous match |
| `:%s/old/new/g` | Replace all `old` with `new` in file |
| `:%s/old/new/gc` | Replace with confirmation |
| `:noh` | Clear search highlights |
—
### 🔹 Advanced Commands
| Command | Action |
| ——— | ——– |
| `:set number` | Show line numbers |
| `:set nonumber` | Hide line numbers |
| `:set hlsearch` | Highlight search matches |
| `:set nohlsearch` | Disable highlight |
| `:!command` | Run shell command (e.g., `:!ls`) |
| `:r !command` | Insert command output (e.g., `:r !date`) |
| `:tabnew` | Open new tab |
| `gt` | Next tab |
| `gT` | Previous tab |
—
### 🔹 Macros (Recording & Playing)
| Command | Action |
| ——— | ——– |
| `qq` | Start recording macro in register `q` |
| `q` | Stop recording |
| `@q` | Play macro from register `q` |
| `5@q` | Play macro 5 times |
—
### 🔹 Buffers & Windows
| Command | Action |
| ——— | ——– |
| `:buffers` | List open buffers |
| `:buffer 2` | Switch to buffer 2 |
| `:bn` | Next buffer |
| `:bp` | Previous buffer |
| `:bd` | Close current buffer |
| `:sp` | Split window horizontally |
| `:vsp` | Split window vertically |
| `Ctrl + w` + `h/j/k/l` | Navigate between windows |
—
### 🔹 File Operations
| Command | Action |
| ——— | ——– |
| `:e!` | Reload file (discard changes) |
| `:wq` | Save & quit |
| `:q!` | Force quit |
| `:r file.txt` | Insert contents of `file.txt` |
| `:w » log.txt` | Append to `log.txt` |
—
### 🔹 Visual Mode (Selection)
| Key | Action |
| —– | ——– |
| `v` | Character-wise selection |
| `V` | Line-wise selection |
| `Ctrl + v` | Block-wise selection |
| `d` | Delete selected text |
| `y` | Yank (copy) selected text |
| `>` | Indent selected text |
| `<` | Unindent selected text |
—
### 🔹 Useful Plugins (if using Vim)
| Plugin | Purpose |
| ——– | ——— |
| NERDTree | File explorer |
| fzf.vim | Fuzzy file finder |
| vim-airline | Status bar |
| YouCompleteMe | Autocompletion |
| vim-surround | Easily edit “surroundings” (quotes, brackets) |
—
### 🔹 Quick Tips ✅ Use `Ctrl + [` instead of `Esc` (faster). ✅ `Ctrl + d` in Insert Mode → Auto-complete word. ✅ `Ctrl + n` in Insert Mode → Auto-complete from dictionary. ✅ `:set paste` → Prevent auto-indent when pasting. ✅ `:set nopaste` → Disable paste mode.
—
### 📚 Further Learning - Vim Adventures (game to learn Vim) → [https://vim-adventures.com/](https://vim-adventures.com/) - Vim Golf (practice Vim commands) → [https://www.vimgolf.com/](https://www.vimgolf.com/) - Vim Cheat Sheet (PDF) → [https://vim.rtorr.com/](https://vim.rtorr.com/)
—
Would you like a customized cheat sheet for a specific task (e.g., Python editing, log file analysis)? Let me know!
