Tool.Yun
Handy værktøjer for udviklere
Beskær billede
Billede til SVG (potrace)
Billedfarveinverter
Billedformatkonverter
Billedsammenligning
Billedstørrelsesjustering
EXIF/Metadata/GPS/JPEG-kvalitetslæser for billeder
Fjern EXIF
Fjern billedets baggrund
GIF til MP4
HEIC-konverter
ICO/PNG-konverter
Kamera optager
OCRize billede og PDF
SVG-forhåndsvisning
Vandmærke
AGE Kryptografi
Argon2 Hasher
Bcrypt
Bech32-encoder/dekoder
CRC-beregner
CSR-generator
Certifikat-/nøgleparser
Dekryptering af Ansible Vault-kryptering
ECDSA-nøglepargenerator
Ed25519 nøglepargenerator
Filhasher
HMAC generator
Hash-tekst
JWT fortolker
JWT-generator
Jasypt-strengkryptering
Krypter / dekrypter tekst
Niceware Bytes til adgangskode
PGP-filkryptering
PGP-kryptering
PGP-nøglegenerator
Paseto/PASERK Lokal
Paseto/PASERK Offentlig/Privat
RSA nøglepar generator
RSA-kryptering
RSA/DSA/ECDSA-underskriver og -verifikator
SAML Parser
SSL-certifikatkonverter
Shamirs hemmelige deling
X509 certifikatgenerator
BMI-beregner
Forklar Shell-kommandoen
IBAN validator og fortolker
IES belysningsretningslinjer
ISBN-validator og parser
ISO 3166 landekodesøgning
ISO 639-søger
Kalenderkonverter
Kompatibilitet med softwarelicenser
Kreditkorttjekker
Luhn-validator
Løbetempoberegner
Momsnummervalidator
Online ordbog
RMB Store Bogstaver Konverter
SLA-beregner
Telefon fortolker og formatter
Unicode-søgning
Valutaomregner
Cron/Ugedagsalarm
Dageberegner
Dato+Varighedsberegner
Dato-tid konverter
ETA beregner
Hvilken dag?
ICAL-filparser
ICAL-generator
Nedtælling
Stop-ur
TTL-beregner
Tidsalarm
Tidszonekonverter
Ugetalkonverter
Varighedsberegner
iCal-fusion
Docker Compose Format Converter
Docker Compose Validator
Docker Compose til .env-fil
Docker Compose til Docker-kørselskonverter
Docker Compose til Quadlets
Docker Pangolin-etiketter
Docker run til Docker compose konverter
Docker-billeddownloader
Docker-inspektion for at køre Docker
Docker-kørsel til Kubernetes
Docker-kørsel til Quadlets
Docker-skrivning til Kubernetes
Dockerfile-etiketgenerator
Kubernetes RBAC-generator
Traefik Docker Compose Maker
Amortiseringsberegner
Accelerationskonverter
Arealenhedsomregner
Energienhedsomregner
Fitnesscomputer
Frekvensomformer
Hastighedskonverter
Illuminanskonverter
Kraftenhedskonverter
Længdeenhedskonverter
Madenergikonverter
Masseenhedsomregner
SI-præfikser konverter
Strømomformer
Temperaturkonverter
Trykenhedskonverter
Vinkelenhedskonverter
Volumenenhedskonverter
Volumenstrømningshastighedskonverter
Adgangskodegenerator
BIP39 adgangskode generator
Diceware adgangskodegenerator
Generator for tilfældige tal
NanoID-generator
Numeronym generator
OTP kode generator
Postkodegenerator
Token generator
UUID generator
UUID-konverter
CSV til JSON
JS til JSON konverter
JSON Linter
JSON difference
JSON minificering
JSON prettify og formatér
JSON til .env
JSON til C#
JSON til CSV
JSON til JS konverter
JSON til Java-enhed
JSON til MessagePack
JSON til TOML
JSON til TS
JSON til XML
JSON til YAML konverter
JSON til at gå
JSON til data
JSON til objekt
JSON-editor
JSON-fusion
JSON-sorteringsmaster
JSON-udjævning/ophævelse af udjævning
Jq/JSONPath-tester
Json Escaper/Unescaper
Json til PHP-array
Json til PHP-kode
Json til Python
Json til SQL DDL
Json til skema
Json-forespørgsel
Json-strengkonverter
Json-størrelsesanalysator
Meddelelsespakke til JSON
ObjGen til JSON
PHP-Array til JSON
tools.json-patch.name
Base64 Hex array-encoder/dekoder
Base64 filkonverter
Base64 streng koder/afkoder
Csv til data
E-mail normalisering
Egenskabskonverter
Energiforbrugs- og udgiftscomputer
Excel til data
Geografiske koordinatkonverter
Heltalsbase-konverter
Konverter til datalagringsenhed
Konverter til konvolutvariabler
Mange enheder konverter
Romertal konverter
Tekst til UTF-8 binær
Tekst til Unicode
Torrent til magnet
ULID generator
Unicode-tegn til Java-enheder konverter
dBm mW-konverter
Binær lommeregner
Drikkepengeberegner
Matematik OCR
Matematik evalueringsværktøj
Matematikformatkonverter
Trigonometrisk/ligningskurvevisualisator
Cron-udtryksbygger
Benchmark bygger
Billedformatberegner
Geografisk afstandsberegner
Procent lommeregner
Epub til Markdown
Forhåndsvisning af Markdown
Generator for markdown-tabel
HTML til markdown
Indsæt som Markdown
Markdown Lorem Ipsum
Markdown Table Pretifier
Markdown til HTML
Markdown til tekst
Markdown-editor
Markdown-indholdsfortegnelsesgenerator
Nedskrivning til DOCX
Nedskæring til data
Nedsættelsesforskel
tools.markdown-format-converter.name
ARPA-dekoder
Apache LogRotate Generator
BIMI DNS-generator
Basic auth generator
Chmod beregner
Cloudflare DNS/RDAP-forespørgsler
Crontab generator
DKIM DNS-generator
DMARC DNS-generator
DNS-forespørgsler
DNSBL-tjekker
Dataoverførselshastighedsberegner
FStab-generator
Generator for nedlukningskommandoer
HAS Desinfektionsmiddel
HDD-lommeregner
HTAccess-generator
Heltal til IPv4/IPv6
Htpasswd/htaccess-generator
IP-geografisk placering
IP-undernets ekskluderingsberegner
IPv4 adressekonverter
IPv4 rækkeudvider
IPv4 subnet beregner
IPv4-6/IPRange/CIDR i IPRange/CIDR/IPMaske
IPv4-undernetliste
IPv4/6-område til CIDR(er)-beregner
IPv6 ULA generator
IPv6-adressekonverter
Iptables Generator
Ipv4/6 CIDR til IP-områdeberegner
Ipv6-subnetberegner
Kodeords styrke analysator
Krøllekommandogenerator
Linearisering af Shell-kommandoer
MAC adresse generator
MAC-adressekonverter
Mikrofontester
Min IP-adresse
Multi-link downloader
Nginx-formateringsprogram
Option43-generator
PTR DNS-generator
Ping
Portnumre
Punycode-konverter
RAID-beregner
RAID-pålidelighedsberegner
Rsync-generator
SIP-autorisation
SPF DNS-generator
Shell-kommandoformatering
Slå MAC adresse op
TCP/UDP-porttester
Tilfældig port-generator
UFW-kommandogenerator
Visuel subnetberegner
WPA PSK-generator
Websocket-testning
Whois-tjekker
Wireguard-konfigurationsgenerator
X-VR-SpamCause-dekoder
ZPOOL RAID-beregner
ZPool snydeark
Zxcvbn adgangskodestyrke
firewalld kommandolinjegenerator
tools.restic-command-generator.name
tools.url-redirection-checker.name
HTML til PDF
PDF signaturkontrol
PDF-kompressor
PDF-tekstudtrækker
Pdf Linearize/FastWeb
Pdf-dekryptering og oplåsning
Pdf-kryptering
Pdf-sammenkædning
Pdf-sideudtrækker
ActiveDirectory LDAP-egenskabssøger
Cookie-parser
DMARC-rapportanalysator
DNS-forplantningstest
DNS-tester
Død pixel-tester
E-mail-parser
EMV TLV-dekoder
ETH-transaktionsdekoder
Filtypedetektor
Flydende kommatalkonverter
GZip/Deflate-konverter
HTTPS-tester
Hex-encoder/dekoder
Keycode info
MIME-kodningskonverter
Maskering af følsomme data
Middle-Endian-konverter
Modstandsberegner
MongoDB ObjectId-konverter
Nmap-kommandobygger
Outlook MSG-parser
Outlook Safelink-dekoder
Parketfiler Læser
Parser af afviste e-mails
RJ45 Cat6-ledningsføringssnydark
SMART Raw-konverter
Seriel portkonsol
SharePoint Share URL-afkoder
Snefnug-ID-udtrækker
TCDump-generator
Teksttegnsætdetektor/dekoder
URL fortolker
URL-bygger
Udvider af korte URL'er
键盘测试器
Almindelig Regex-snydeark
Bash snydeark
CSS-selektorer snydeark
Docker Compose cheatsheet
Docker SWARM snydeark
Docker-snydeark
Dockerfile snydeark
Git Semantic Commit Cheatsheet
Git snydeark
JSONPath Syntaks Cheatsheet
Jq snydeark
K8s snydeark
Markdown-snydeark
Nano-snydeark
Nginx snydeark
Powershell snydeark
Regex snydeark
Sed snydeark
Snydeark til skærmkommandoer
Tmux-kommando-snydeark
VIM-snydeark
XPath-syntaks-cheatsheet
Zellij-kommando-snydeark
chmod-kommando-snydeark
Kortvælger
Lykkehjul
Møntflipper
Terningkaster
GTIN-validator
QR kode generator
QR-kodedekoder
QR-kontaktinfogenerator
Stregkodegenerator
Stregkodelæser
WiFi QR kode generator
tools.epc-qrcode-generator.name
TOML Linter
TOML til JSON
TOML til YAML
AI-promptsplitter
ASCII kunsttekstgenerator
Billede til ASCII-kunst
Case konverter
Citationsgenerator
Emoji vælger
Finder af duplikerede linjer
Forskellige ord
GPT-token-encoder/dekoder
GPT-tokenestimator
Havfrueeksportør
I og L Checker
JSON til TOON
Levenshtein-lommeregner
Liste konverter
Lister Sammenlign
Lorem ipsum generator
Mappestrukturdiagram
Morsekodekonverter
Pak filer til AI
RSVP-læser
Regex-tester
Runekonverter
Sammenlign skrifttyper
Sed-kommandogenerator
Smart teksterstatning og linjebryder
Social linkdeler
Streng obfuskator
TOON til JSON
Tabulator til mellemrum
Tastaturlayoutkonverter
Tekst difference
Tekst til NATO-alfabetet
Tekst til Unicode-navne
Tekstoversætter
Tekststatistik
Tilfældig linjevælger
Udtræk tekst fra HTML
Unicode til GSM-7
Unicode-formatering
Zalgo Generator/Banner
ANSI Escape Tester
API-tests
CSS/JS Forskøn og minimer
Citatkonverter
Cli-kommandoeditor
Databaseoprettelsesværktøj
Databasetabelgenerator
Dataforfalsker
Django Secret Generator
Favicon-generator
Fildeler
GitIgnore-generator
Gitaattributgenerator
HEX-filkonverter
Javascript Obfuscator
Javascript Prettifier
Javascript Unfuscator/Unpacker
Json til Protobuf
Json til SQL INSERT
Json til Typescript
K6 load test script generator
Kode/Scripts-markør
Krøllekonverter
Mailto-generator
Open graph meta generator
Picomatch-tester
Pomodoro-timer
SQL prettify og formater
SQL-minifikator
SQL-parametergenerator
Stacktrace pænere
Strengeudløser
Stringgenerator til databaseforbindelse
Swagger UI-tester
Billede til CSS
CSS Gradientgenerator
CSS XPath-konverter
CSS-enhedskonverter
CSS-pænere
Enhedsoplysninger
Farve konvertering
Farvehjul
Farvekontrastkontrol
HTML WYSIWYG editor
HTML til XHTML
HTML til data
HTML-minimer
HTTP status koder
Html-forsmagningsværktøj
Html-renser
Kod/afkod URL-formatteret strenge
MIME typer
REM Pixel-konverter
SVG pladsholder generator
Slugify streng
URL-fanger
URL-renser
UTM URL-generator
Undslip HTML
Url-tekstsøgningsfragmentopretter
User-agent fortolker
ObjGen til HTML
XML formatter
XML til JSON
XML-linter
XPath-tester
XSLT-tester
YAML prettify og format
YAML til JSON konverter
YAML til TOML
YAML-fusion
YAML-udjævning/ophævelse af udjævning

VIM-snydeark

Vim teksteditorkommandoer

Vim is a modal editor: keys mean different things depending on the mode you are in. Most commands compose as count + operator + motion — 3dw deletes three words, d$ deletes to the end of the line — so learning a new motion instantly upgrades every operator you already know.

💡 New to Vim? Run vimtutor in a terminal — 30 minutes, and the rest of this sheet starts making sense.

🚦 Modes

ModeEnter withLeave withFor
NormalEsc (or Ctrl-[)—Moving and running commands
Inserti a o I A OEscTyping text
Visualv V Ctrl-vEscSelecting text
Command-line: / ?Enter or EscEx commands and searches
ReplaceREscOvertyping

🧭 Cursor Movement

KeyMoves to
h j k lLeft, down, up, right
w / WStart of the next word / WORD (WORD ignores punctuation)
e / EEnd of the next word / WORD
b / BStart of the previous word / WORD
ge / gEEnd of the previous word / WORD
0First column of the line
^First non-blank character
$End of the line
g_Last non-blank character
f<char> / F<char>Next / previous occurrence of a character on the line
t<char> / T<char>Just before the next / after the previous occurrence
; / ,Repeat the last f/t forwards / backwards
} / {Next / previous paragraph
) / (Next / previous sentence
gg / GFirst / last line of the file
<n>G or :<n>Line n
H M LTop, middle, bottom of the screen
Ctrl-d / Ctrl-uHalf a page down / up
Ctrl-f / Ctrl-bA full page down / up
zz zt zbScroll so the cursor line is centred / at the top / at the bottom
%The matching bracket, brace or parenthesis
Ctrl-o / Ctrl-iBack / forward through the jump list
g; / g,Back / forward through the change list
'' / ``Back to where the last jump started

✏️ Entering Insert Mode

KeyStarts typing
i / IBefore the cursor / at the first non-blank character
a / AAfter the cursor / at the end of the line
o / OOn a new line below / above
s / SDeleting the character / the whole line first
ccReplacing the whole line
CReplacing from the cursor to the end of the line
giWhere you last left insert mode
Ctrl-oRun one normal-mode command, then return to insert

🔧 Operators & Text Objects

An operator waits for a motion or a text object. Doubling the operator (dd, yy, >>) applies it to the whole line.

OperatorDoes
dDelete (into a register)
cChange — delete, then insert
yYank (copy)
> / <Indent / unindent
=Re-indent
gu / gU / g~Lower-case / upper-case / toggle case
gqReformat to textwidth
Text objectSelects
iw / awInner word / a word plus its trailing space
is / asSentence
ip / apParagraph
i" a"Inside / including the double quotes
i' a'Inside / including the single quotes
i( a(Inside / including the parentheses (also ib, ab)
i{ a{Inside / including the braces (also iB, aB)
i[ a[Inside / including the brackets
i< a<Inside / including the angle brackets
it / atInside / including an HTML or XML tag
ciw     change the word under the cursor
ci"     change everything inside the quotes
da(     delete the parentheses and their contents
yi{     yank the body of a block
2dd     delete two lines
d3w     delete three words
>ap     indent the whole paragraph

✂️ Editing

KeyDoes
x / XDelete the character under / before the cursor
r<char>Replace one character, staying in normal mode
ROvertype until Esc
~Toggle the case of one character
J / gJJoin the next line, with / without a space
u / Ctrl-rUndo / redo
UUndo every change on the current line
.Repeat the last change — the most valuable key in Vim
Ctrl-a / Ctrl-xIncrement / decrement the number under the cursor
>> / <<Indent / unindent the line
==Re-indent the line
:earlier 10m / :later 5mMove through the undo tree by time

📋 Copy, Paste & Registers

KeyDoes
yy (or Y)Yank the line
y<motion>Yank what the motion covers
p / PPaste after / before the cursor
]pPaste and match the current indentation
dd / DDelete the line / to the end of the line
"ayy / "apYank into and paste from register a
"+y / "+pYank to and paste from the system clipboard
"0pPaste the last yank (never overwritten by deletes)
:registersShow every register
xp / ddpSwap two characters / two lines

⚠️ In Vim, deleting also yanks — dd overwrites the unnamed register. Use "0p to paste what you last copied, or yank into a named register first.

🔍 Search & Replace

CommandDoes
/pattern / ?patternSearch forwards / backwards
n / NNext / previous match
* / #Search for the word under the cursor, forwards / backwards
:nohClear the search highlighting
:s/old/new/Replace the first match on the line
:s/old/new/gReplace every match on the line
:%s/old/new/gReplace throughout the file
:%s/old/new/gc…asking for confirmation on each
:%s/old/new/gi…ignoring case
:'<,'>s/old/new/gOnly inside the visual selection
:%s/\<word\>/new/gWhole words only
&Repeat the last substitution on this line

The global command

:g runs an Ex command on every line matching a pattern — the power tool of Vim.

:g/TODO/d           delete every line containing TODO
:v/keep/d           delete every line NOT containing 'keep' (:v is :g!)
:g/^$/d             delete all blank lines
:g/error/normal A;  append a semicolon to every matching line
:g/pattern/t$       copy matching lines to the end of the file
:g/pattern/m0       move matching lines to the top (reverses their order)

🎨 Visual Mode

KeyDoes
vCharacter-wise selection
VLine-wise selection
Ctrl-vBlock (column) selection
gvReselect the previous selection
oJump to the other end of the selection
d / y / cDelete, yank or change the selection
> / <Indent / unindent the selection
u / U / ~Lower-case, upper-case, toggle
:'<,'>Run an Ex command over the selection
Ctrl-v, select lines, I, type, Esc     insert the same text on every line
Ctrl-v, select lines, $, A, type, Esc  append at the end of every line
Ctrl-v, select, d                      delete a rectangular block

🔖 Marks & Jumps

KeyDoes
m<a-z>Set a mark in this file
m<A-Z>Set a global mark, across files
`aJump to mark a, exact position
'aJump to the start of the line holding mark a
`.Jump to the position of the last edit
:marksList every mark
:delmarks aDelete a mark

🎬 Macros

KeyDoes
q<a-z>Start recording into a register
qStop recording
@aPlay the macro back
@@Replay the last macro
10@aRun it ten times
:%normal @aRun it on every line of the file

📂 Files, Buffers, Windows & Tabs

CommandDoes
:e <file>Open a file
:e!Reload, discarding changes
:w / :w <file>Save / save as
:waSave every changed buffer
:q / :q!Quit / quit without saving
:wq or :x or ZZSave and quit
ZQQuit without saving
:ls / :buffersList the open buffers
:b <n> / :b <name>Switch to a buffer
:bn / :bp / :bdNext / previous / delete buffer
:sp / :vspSplit horizontally / vertically
Ctrl-w h j k lMove to the window in that direction
Ctrl-w wCycle through the windows
Ctrl-w q / Ctrl-w oClose this window / close all the others
Ctrl-w =Make all windows the same size
Ctrl-w + / - / < / >Resize the window
:tabnew <file>Open a new tab
gt / gTNext / previous tab
:tabc / :taboClose this tab / close all the others
:r <file> / :r !cmdRead a file, or a command’s output, into the buffer
:!<cmd>Run a shell command
:%!<cmd>Filter the whole buffer through a command
:w !sudo tee %Save a file you opened without permission

📑 Folding

KeyDoes
zf<motion>Create a fold
za / zAToggle this fold / recursively
zo / zcOpen / close this fold
zR / zMOpen / close every fold
zj / zkMove to the next / previous fold

🧩 Completion & Spelling

KeyDoes
Ctrl-n / Ctrl-pComplete a word from the open buffers
Ctrl-x Ctrl-fComplete a file path
Ctrl-x Ctrl-lComplete a whole line
Ctrl-x Ctrl-oOmni-completion (language-aware)
:set spell spelllang=en_usTurn spell checking on
]s / [sNext / previous misspelling
z=Suggestions for the word under the cursor
zg / zwAdd to the dictionary / mark as wrong

🧵 Quickfix & Diff

CommandDoes
:make / :grep <pat>Fill the quickfix list
:copen / :ccloseOpen / close the quickfix window
:cn / :cpJump to the next / previous entry
:cfirst / :clastFirst / last entry
vimdiff a bOpen two files in diff mode
]c / [cNext / previous difference
do / dpObtain / put the change under the cursor
:diffupdateRefresh the diff

⚙️ Handy :set Options

OptionEffect
:set nu / :set nonuShow / hide line numbers
:set rnuRelative line numbers — makes 5j obvious
:set ic / :set noicIgnore case when searching
:set is / :set hlsIncremental search / highlight matches
:set wrap / :set nowrapSoft-wrap long lines
:set listShow tabs and trailing whitespace
:set pasteStop auto-indent mangling pasted text
:set ft=<type>Force a file type
:set sw=4 ts=4 etFour-space indentation, spaces not tabs
:syntax onSyntax highlighting

📄 A Starting ~/.vimrc

set nocompatible
syntax on
filetype plugin indent on

set number relativenumber
set incsearch hlsearch ignorecase smartcase
set expandtab shiftwidth=2 tabstop=2
set scrolloff=5
set hidden
set undofile
set clipboard=unnamedplus

" a leader key, and a few mappings that pay for themselves
let mapleader = " "
nnoremap <leader>w :w<CR>
nnoremap <leader>/ :nohlsearch<CR>
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

ℹ️ Mappings that start with <leader> are your configuration, not built-in Vim. If a leader shortcut on someone else’s cheat sheet does nothing, that is why.

📚 Resources

  • vimtutor — the built-in 30-minute tutorial
  • :help <topic> — Vim’s own documentation, and it is excellent
  • Vim documentation
  • Vim Adventures — learn by playing
  • Practical Vim (book)