mirror of
https://gitlab.com/EternalWanderer/voidcruiser.nl
synced 2024-11-29 12:23:51 +01:00
74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
---
|
|
title: Vim
|
|
date: 2022-03-21T01:17:06+02:00
|
|
author: $HUMANOID
|
|
tags: ["technology", "linux", "vim"]
|
|
---
|
|
|
|
# Vim Cheat sheet
|
|
|
|
This is a little Vim cheat sheet with thing people generally don't seem to be particularly familiar with when it comes to Vim.
|
|
This is about Vim, not NeoVim, but I most things with still apply to NeoVim.
|
|
|
|
## Self-explanatory things
|
|
These are a few bindings that I don't feel require an extensive explanation.
|
|
|
|
| binding | action |
|
|
| --- | --- |
|
|
| Z Z | write and quit; equivalent to :wq |
|
|
| Z Q | quit; equivalent to :q! |
|
|
| :x | write and quit; equivalent to :wq |
|
|
| g u | swap characters to lower case |
|
|
| g u u | swap characters to lower case on current line |
|
|
| g U | swap characters to upper case |
|
|
| g U U | swap characters to upper case on current line |
|
|
| g {j,k} | if the current line you're on spans more then the width of your screen, go down to the portion that's past the linebreak |
|
|
| ~ | toggle case |
|
|
| z g | add word to current dictionary |
|
|
| [ s | highlight previous misspelled word |
|
|
| ] s | highlight next misspelled word |
|
|
| z = | open spelling suggestions based on current dictionary and highlighted word |
|
|
| . | repeat last modify operation |
|
|
| ; | repeat last move operation |
|
|
|
|
## Splits and Terminals
|
|
You can split your vim window with somewhat Emacs-like chords by default; I don't bother changing them because I use with quite a few different computers, not all of which have my Vim dotfiles installed.
|
|
|
|
| binding | action |
|
|
| --- | --- |
|
|
| C-w s | Horizontal split |
|
|
| C-w v | Vertical split |
|
|
| C-w {h,j,k,l} | Move focus to split {left,down,up,right} |
|
|
| C-w S-{h,j,k,l} | Move split to {left,down,up,right} |
|
|
|
|
Another usefull thing I don't see a lot of people do is open a terminal session in vim.
|
|
This can be really quite useful if you quickly need to change or check something.
|
|
You do this with the `:terminal` command.
|
|
In Vim, this will horizontally split your current window and open a terminal session in the top half.
|
|
(Yes, you can also open Vim sessions in these terminal sessions if you feel like it).
|
|
You can navigate to and from it just like any other splits.
|
|
In NeoVim terminals are handled significantly worse and is the main reason I went back to base Vim.
|
|
|
|
## Tips
|
|
|
|
Something I came across some time ago is that you can interpet the current line with whatever you want using
|
|
```
|
|
:.!<interpeter>
|
|
```
|
|
So for instance running...
|
|
```
|
|
:.!bash
|
|
```
|
|
...while highlighting the line...
|
|
``` bash
|
|
echo Line{1..5} | sed 's/ /\n/g'
|
|
```
|
|
...will result in:
|
|
```
|
|
Line1
|
|
Line2
|
|
Line3
|
|
Line4
|
|
Line5
|
|
```
|