Metainformationen zur Seite
VIM Cheat Sheet
https://matteslerntprogrammieren.de/2018/10/17/vim-cheatsheet-2/ https://wiki.ubuntuusers.de/VIM/ https://www.it-swarm.net/de/vim/suchen-und-ersetzen-sie-strings-vim-mehreren-zeilen/1043122498/ https://www.thomas-krenn.com/de/wiki/Vi_Editor_Tipps_und_Tricks https://piware.de/docs/vimref.txt
VIM Tutor
kopieren / einfügen
Befehl | Taste(n) | Eselbrücke |
---|---|---|
löschen(Entf) | x,X | x=unter Cursor, X=vor Cursor |
einfügen | i,I | Insert(I = Zeilenanfang) |
(Am Ende) Einfügen | a,A | Append(A=Zeilenende) |
copy | y / yy /:y2 | y2w, y3w,… yy= Zeile, 5yy/:y5= 5 Zeilen |
put(Register einfügen) | p,P | put(p unter, P Über) |
ersetzen | r / R | replace |
löschen bis wortende | ce | change end |
löschen bis Zeilenende | c$ | |
Wort löschen | dw / de | del word / del end |
Bis Zeilenende löschen | d$ | del Dollar |
Wörter löschen | d2w | del 2 words |
(2)Zeile löschen | (2)dd /:d2 | |
Neue Zeile | o/O | unter/über |
Zeile(n) verbinden | J | |
undo | u/U | last Command/Last Zeile |
Reundo | STRG+R |
lesen / speichern
Befehl | Taste(n) | Eselbrücke |
---|---|---|
Speicher und Ende | :wq , :x | Write+Quit |
Ende ohne Speichern | :q! | Quit! |
Befehl in Shell ausführen | :!<Befehl> | |
Speichern | :w <Filename> | |
Auswahl speichern | ,<,>,w: <NAME> | Visualmode |
Datei einfügen | :r <Filename> | read |
Datei öffnen | :e <Filename> | edit |
Shellausgabe in File | :r !<Befehl> |
Bewegen / springen
Befehl | Taste(n) | Eselbrücke |
---|---|---|
Bewegen | h,j,k,l | |
Springen | 2w, 3e, 0 | 2 wörter, 3wörter ende, Zeilenanfang zero |
Sprung Datei Ende | G | |
Sprung Anfang Datei | gg | |
Positionanzeige | STRG + G | |
Sprung Postion | Nr+G /:Nummer |
Suchen und ersetzen
Befehl | Taste(n) | Eselbrücke |
---|---|---|
Suchen | / oder ? | |
Suchen vor/zur | n oder N | next |
Zurück zum letzten Sprung | CTRL + O/ I | |
Klammerende finden | % | |
Suchen/Ersetzen | (%)s/old/new/ | search/o/n/g g für gobal,%hole file |
Visual mode
Befehl | Taste(n) | Eselbrücke |
---|---|---|
VISUAL mode | (V) | |
VISUAL BLOCK mode | (Ctrl+V) | |
VISUAL LINE mode | (Shift+V) | |
suchen/ersetzen | auswählen→ :s/old/new/g | ‘<,’> = Bereich, wird automatisch gesetzt |
Copy&Paste | v → markieren → y →p | |
autocomplete | STRG+P | |
multi-line kommentar | Shift-V → Zeilen markieren → Shift I → # → ESC | |
Anfang Ersetzen | Strg-V → Block markieren → c → “Text” → ESC | |
Code Block intent | Shift-V → Block markieren → “<” oder “>” Enter (Externer Link |
Optionen und EInstellungen
Befehl | Taste(n) | Eselbrücke |
---|---|---|
GroßKleinschr aus | set (no)ic | Ignore Case |
Search Highlight | set (no)hls | highlight search |
Teilweise suche | set is | |
hilfe | :help | |
VIM konfigurieren | .vimrc | |
Autokompletion | :<Befehl> STRG+D/Tab | |
Optionen | set: … | number, syntax on, paste, nowrap,autointend,… |
Command History | q: | commands |
Fenster teilenn | :split :tabe :new :vnew | linklink2 |
Zwischen split Fenster wechseln | STRG w + h,j,k,l | strg w + hoch, runter,links,rechts |
Color/Fabr Scheme/Theme | :colorscheme delek | |
Plugins - Scripte - Lösungen
Multiline Comment
https://unix.stackexchange.com/questions/120615/how-to-comment-multiple-lines-at-once * v(visual mode) → markieren →:s/^/#/ (Zeilenanfang suchen und # setzen)
* STRG+V -> markieren -> j (Blockende) -> STRG +I -> # -> ESC * Entfernen: STRG+V -> markieren -> j (Blockende) -> STRG +X -> # -> ESC * :(ZeilnrAnfang),(ZeilennummerEnde)s/^/#
Autocomplete
https://vim.fandom.com/wiki/Omni_completion filetype plugin on set omnifunc=syntaxcomplete#Complete
verschiedene Vim configs
keine einrückung / intent bei copy und paste
https://stackoverflow.com/a/2514520
: set paste : set nopaste #vimrc set pastetoggle=<F3>
Vim-RC
https://shapeshed.com/vim-netrw/
" Pathogen (Sowas Addon Manager) call pathogen#infect() " Erweiterte Vi-Funktionen erlauben: set nocompatible """"""""""""""""Themes und Ausehen """""""""" "Colorscheme colorscheme koehler " Syntax-Highlight anschalten: syntax on " Zeilennummern set number """"""Dateibehandlung""""""""""" " Text- und Datei-Encodierung auf UTF-8 setzen: set encoding=utf-8 set fileencoding=utf-8 filetype on " Dateityp-Erkennung aktivieren: " Einrückungen und Plugins nach Dateityp aktivieren: filetype indent on filetype plugin on " Erstelle einen Backup von jeder geöffneten Datei im Backup-Verzeichnis: "set backup "set backupdir=$HOME/.vim/backupdir """"""""Bedienung """"""""""""""""""" " Maus-Unterstützung in allen Vim-Modi erlauben: set mouse=a " make backspaces more powerfull set backspace=indent,eol,start " Verwende beim Kopieren/Einfügen die systemweite Zwischenablage ("*): set clipboard+=unnamed "set pastetoggle=<F2> """"""""""""Suche"""""""""""""""""""""""""""""""""""""" " Hebe Suchergebnisse durch Highlighting hervor: set hlsearch " Ignoriere Groß-/Kleinschreibung bei der Suche: set ignorecase " Suche bereits während der Eingabe des Suchstrings: set incsearch " Führe die Suche am Anfang der Datei fort, wenn das Ende erreicht ist: set wrapscan """""""""""""""""Statuszeile """"""""""""""""""""""""""""""""" " Zeige die Statuszeile permanent an: set laststatus=2 " Zeige rechts in der Info-Zeile die markierte(n) Zeichen/Zeilen an: set showcmd " Zeige den aktuellen Modus an: set showmode " Hebe zugehörige Klammern durch Highlighting hervor: set showmatch """"""""""Quelltextbehandlung """"""""""""""""" " Aktiviere automatische Einrückungen: set smartindent " Aktiviere automatischen Texteinzug: "set smarttab "Setze die Breite bei Einrückungen mit < und > auf 4: set softtabstop=4 " Setze die Breite eines Tab-Zeichens auf 4: set tabstop=4 " Lege die maximale Textweite je Zeile fest: set textwidth=79 " Erlaube Tab-Vervollständigung in der Kommandozeile set wildmenu " expand tabs into spaces set expandtab set shiftwidth=4 set shiftround """"""""""Dateibau """""""""""""""""" ""Nerdtreelike "let g:netrw_banner = 0 "let g:netrw_liststyle = 3 "let g:netrw_browse_split = 4 "let g:netrw_altv = 1 "let g:netrw_winsize = 20 "augroup ProjectDrawer " autocmd! " autocmd VimEnter * :Vexplore "augroup END """Python-IDE""" ""Quelle: https://github.com/mbrochh/vim-as-a-python-ide/blob/master/.vimrc " Settings for ctrlp let g:ctrlp_max_height = 30 set wildignore+=*.pyc set wildignore+=*_build/* set wildignore+=*/coverage/* " Settings for jedi-vim let g:jedi#usages_command = "<leader>z" let g:jedi#popup_on_dot = 0 let g:jedi#popup_select_first = 0 map <Leader>b Oimport ipdb; ipdb.set_trace() # BREAKPOINT<C-c> " Better navigating through omnicomplete option list " See http://stackoverflow.com/questions/2170023/how-to-map-keys-for-popup-menu-in-vim set completeopt=longest,menuone function! OmniPopup(action) if pumvisible() if a:action == 'j' return "<C-N>" elseif a:action == 'k' return "<C-P>" endif endif return a:action endfunction inoremap <silent><C-j> <C-R>=OmniPopup('j')<CR> inoremap <silent><C-k> <C-R>=OmniPopup('k')<CR> " Python folding "" set nofoldenable " Useful settings "" set history=700 "" set undolevels=700 """""Was war das noochmal????? au BufEnter,BufNewFile *.py noremap <F2> :VoomToggle python<CR> ""Apt "sudo apt install vim-addon-manager vim-airline vim-airline-themes vim-ctrlp vim-syntastic vim-youcompleteme vim-python-jedi vim-pathogen vim-scripts vim-nox vim-voom flake8 """""Braucht man das bei Patogen noch? ""Addons "vam install youcompletme "vam install python-jedi "vam install syntastic "vam install airline "vam install airline-temes
Python mit VIM
https://www.youtube.com/watch?v=YhqsjUUHj6g https://realpython.com/vim-and-python-a-match-made-in-heaven/ https://github.com/mbrochh/vim-as-a-python-ide/blob/master/vim-as-a-python-ide.pdf https://github.com/mbrochh/vim-as-a-python-ide/blob/master/.vimrc https://github.com/vinta/awesome-python