mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 18:11:38 +00:00
275 lines
9.0 KiB
Markdown
275 lines
9.0 KiB
Markdown
---
|
|
category: tool
|
|
tool: vim
|
|
lang = de-de
|
|
contributors:
|
|
- ["RadhikaG", "https://github.com/RadhikaG"]
|
|
translators:
|
|
- ["caminsha", "https://github.com/caminsha"]
|
|
filename: LearnVim-de.txt
|
|
---
|
|
|
|
|
|
[Vim](http://www.vim.org)
|
|
(Vi IMproved) ist ein Klon von vi, dem bekannten Editor für Unix. Es ist ein
|
|
Texteditor, welcher mit Fokus auf Geschwindigkeit und Prouktivität entwickelt
|
|
wurde.
|
|
Vim hat viele Keybindings für ein schnelles navigieren und schnelles bearbeiten
|
|
einer Datei.
|
|
|
|
## Grundlagen, um in Vim zu navigieren
|
|
|
|
```
|
|
vim <filename> # Öffne <filename> in Vim
|
|
:help <topic> # Open up built-in help docs about <topic> if any exists
|
|
:q # Schliesse vim
|
|
:w # Speichere diese Datei
|
|
:wq # Speichere diese Datei und schliesse vim
|
|
ZZ # Speichere diese Datei und schliesse vim
|
|
:q! # Schliesse vim ohne die Datei zu speichern
|
|
# ! *zwingt* die Ausführung von :q,
|
|
# daher wird die Datei nicht gespeichert.
|
|
ZQ # Beende vim ohne die Datei zu speichern
|
|
:x # Speichere die Datei und beende vim
|
|
# Dies ist eine kürzere Version von :wq
|
|
|
|
u # Änderung rückgängig machen
|
|
CTRL+R # Änderung wiederherstellen
|
|
|
|
h # Den Cursor um ein Zeichen nach links bewegen
|
|
j # Den Cursor eine Zeile nach unten bewegen
|
|
k # Den Cursor eine Zeile nach oben bewegen
|
|
l # Den Cursor um ein Zeichen nach rechts bewegen
|
|
|
|
Ctrl+B # Gehe eine Bildschirmanzeige zurück
|
|
Ctrl+F # Gehe eine Bildschirmanzeige vorwärts
|
|
Ctrl+D # Gehe eine halbe Bildschirmanzeige vorwärts
|
|
Ctrl+U # Gehe eine halbe Bildschirmanzeige zurück
|
|
|
|
# Navigieren innerhalb einer Zeile
|
|
|
|
0 # Navigiere zum Anfang der Zeile
|
|
$ # Navigiere zum Ende der Zeile
|
|
^ # Navigiere zum ersten Zeichen, welchen kein Leerzeichen ist
|
|
|
|
# Im Text suchen
|
|
|
|
/word # Hebt alle Ergebnisse nach dem Cursor hervor
|
|
?word # Hebt alle Ergebnisse vor dem Cursor hervor
|
|
n # Bewegt den Cursor zum nächsten Ergebnis nach der Suche
|
|
N # Bewegt den Cursor zum vorherigen Ergebnis der Suche
|
|
|
|
:%s/foo/bar/g # Ersetze "foo" durch "bar" in allen Zeilen
|
|
:s/foo/bar/g # Ersetze "foo" durch "bar" in der aktuellen Zeile
|
|
:%s/\n/\r/g # Replace new line characters with new line characters
|
|
|
|
# Jumping to characters
|
|
|
|
f<character> # Jump forward and land on <character>
|
|
t<character> # Jump forward and land right before <character>
|
|
|
|
# For example,
|
|
f< # Jump forward and land on <
|
|
t< # Jump forward and land right before <
|
|
|
|
# Moving by word
|
|
|
|
w # Move forward by one word
|
|
b # Move back by one word
|
|
e # Move to end of current word
|
|
|
|
# Other characters for moving around
|
|
|
|
gg # Go to the top of the file
|
|
G # Go to the bottom of the file
|
|
:NUM # Go to line number NUM (NUM is any number)
|
|
H # Move to the top of the screen
|
|
M # Move to the middle of the screen
|
|
L # Move to the bottom of the screen
|
|
```
|
|
|
|
## Help docs:
|
|
|
|
Vim has built in help documentation that can accessed with `:help <topic>`.
|
|
For example `:help navigation` will pull up documentation about how to navigate
|
|
your workspace!
|
|
|
|
`:help` can also be used without an option. This will bring up a default help dialog
|
|
that aims to make getting started with vim more approachable!
|
|
|
|
## Modes:
|
|
|
|
Vim is based on the concept on **modes**.
|
|
|
|
- Command Mode - vim starts up in this mode, used to navigate and write commands
|
|
- Insert Mode - used to make changes in your file
|
|
- Visual Mode - used to highlight text and do operations to them
|
|
- Ex Mode - used to drop down to the bottom with the ':' prompt to enter commands
|
|
|
|
```
|
|
i # Puts vim into insert mode, before the cursor position
|
|
a # Puts vim into insert mode, after the cursor position
|
|
v # Puts vim into visual mode
|
|
: # Puts vim into ex mode
|
|
<esc> # 'Escapes' from whichever mode you're in, into Command mode
|
|
|
|
# Copying and pasting text
|
|
|
|
y # Yank whatever is selected
|
|
yy # Yank the current line
|
|
d # Delete whatever is selected
|
|
dd # Delete the current line
|
|
p # Paste the copied text after the current cursor position
|
|
P # Paste the copied text before the current cursor position
|
|
x # Deleting character under current cursor position
|
|
```
|
|
|
|
## The 'Grammar' of vim
|
|
|
|
Vim can be thought of as a set of commands in a
|
|
'Verb-Modifier-Noun' format, where:
|
|
|
|
- Verb - your action
|
|
- Modifier - how you're doing your action
|
|
- Noun - the object on which your action acts on
|
|
|
|
A few important examples of 'Verbs', 'Modifiers', and 'Nouns':
|
|
|
|
```
|
|
# 'Verbs'
|
|
|
|
d # Delete
|
|
c # Change
|
|
y # Yank (copy)
|
|
v # Visually select
|
|
|
|
# 'Modifiers'
|
|
|
|
i # Inside
|
|
a # Around
|
|
NUM # Number (NUM is any number)
|
|
f # Searches for something and lands on it
|
|
t # Searches for something and stops before it
|
|
/ # Finds a string from cursor onwards
|
|
? # Finds a string before cursor
|
|
|
|
# 'Nouns'
|
|
|
|
w # Word
|
|
s # Sentence
|
|
p # Paragraph
|
|
b # Block
|
|
|
|
# Sample 'sentences' or commands
|
|
|
|
d2w # Delete 2 words
|
|
cis # Change inside sentence
|
|
yip # Yank inside paragraph (copy the para you're in)
|
|
ct< # Change to open bracket
|
|
# Change the text from where you are to the next open bracket
|
|
d$ # Delete till end of line
|
|
```
|
|
|
|
## Some shortcuts and tricks
|
|
|
|
<!--TODO: Add more!-->
|
|
```
|
|
> # Indent selection by one block
|
|
< # Dedent selection by one block
|
|
:earlier 15m # Reverts the document back to how it was 15 minutes ago
|
|
:later 15m # Reverse above command
|
|
ddp # Swap position of consecutive lines, dd then p
|
|
. # Repeat previous action
|
|
:w !sudo tee % # Save the current file as root
|
|
:set syntax=c # Set syntax highlighting to 'c'
|
|
:sort # Sort all lines
|
|
:sort! # Sort all lines in reverse
|
|
:sort u # Sort all lines and remove duplicates
|
|
~ # Toggle letter case of selected text
|
|
u # Selected text to lower case
|
|
U # Selected text to upper case
|
|
|
|
# Fold text
|
|
zf # Create fold from selected text
|
|
zo # Open current fold
|
|
zc # Close current fold
|
|
zR # Open all folds
|
|
zM # Close all folds
|
|
```
|
|
|
|
## Macros
|
|
|
|
Macros are basically recordable actions.
|
|
When you start recording a macro, it records **every** action and command
|
|
you use, until you stop recording. On invoking a macro, it applies the exact
|
|
same sequence of actions and commands again on the text selection.
|
|
|
|
```
|
|
qa # Start recording a macro named 'a'
|
|
q # Stop recording
|
|
@a # Play back the macro
|
|
```
|
|
|
|
### Configuring ~/.vimrc
|
|
|
|
The .vimrc file can be used to configure Vim on startup.
|
|
|
|
Here's a sample ~/.vimrc file:
|
|
|
|
```
|
|
" Example ~/.vimrc
|
|
" 2015.10
|
|
|
|
" Required for vim to be iMproved
|
|
set nocompatible
|
|
|
|
" Determines filetype from name to allow intelligent auto-indenting, etc.
|
|
filetype indent plugin on
|
|
|
|
" Enable syntax highlighting
|
|
syntax on
|
|
|
|
" Better command-line completion
|
|
set wildmenu
|
|
|
|
" Use case insensitive search except when using capital letters
|
|
set ignorecase
|
|
set smartcase
|
|
|
|
" When opening a new line and no file-specific indenting is enabled,
|
|
" keep same indent as the line you're currently on
|
|
set autoindent
|
|
|
|
" Display line numbers on the left
|
|
set number
|
|
|
|
" Indentation options, change according to personal preference
|
|
|
|
" Number of visual spaces per TAB
|
|
set tabstop=4
|
|
|
|
" Number of spaces in TAB when editing
|
|
set softtabstop=4
|
|
|
|
" Number of spaces indented when reindent operations (>> and <<) are used
|
|
set shiftwidth=4
|
|
|
|
" Convert TABs to spaces
|
|
set expandtab
|
|
|
|
" Enable intelligent tabbing and spacing for indentation and alignment
|
|
set smarttab
|
|
```
|
|
|
|
### References
|
|
|
|
[Vim | Home](http://www.vim.org/index.php)
|
|
|
|
`$ vimtutor`
|
|
|
|
[A vim Tutorial and Primer](https://danielmiessler.com/study/vim/)
|
|
|
|
[What are the dark corners of Vim your mom never told you about? (Stack Overflow thread)](http://stackoverflow.com/questions/726894/what-are-the-dark-corners-of-vim-your-mom-never-told-you-about)
|
|
|
|
[Arch Linux Wiki](https://wiki.archlinux.org/index.php/Vim)
|