vi_vim
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| vi_vim [2025-08-15 21:10:50] – [Automatischen Visual Mode mit Maus deaktivieren] david | vi_vim [2025-08-15 21:11:02] (aktuell) – [Vim Maus deaktivieren] david | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== vi / vim ====== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | * '': | ||
| + | * '': | ||
| + | * '': | ||
| + | * '': | ||
| + | * '': | ||
| + | * '': | ||
| + | * '': | ||
| + | * '': | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | * '': | ||
| + | * '': | ||
| + | |||
| + | <code bash> | ||
| + | update-alternatives --config editor | ||
| + | # ODER | ||
| + | echo " | ||
| + | # ODER | ||
| + | export " | ||
| + | export " | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Vim Maus deaktivieren ===== | ||
| + | |||
| + | **Niemals** '' | ||
| + | |||
| + | > echo "set mouse=" | ||
| + | |||
| + | |||
| + | ===== minimale vim config ===== | ||
| + | |||
| + | Damit die Farben sowohl bei weißem als auch bei schwarzem Hintergrund im '' | ||
| + | |||
| + | <code vim> | ||
| + | cat << ' | ||
| + | unlet! skip_defaults_vim | ||
| + | source $VIMRUNTIME/ | ||
| + | set nocompatible | ||
| + | |||
| + | colorscheme ron | ||
| + | filetype plugin indent off | ||
| + | syntax on | ||
| + | |||
| + | set encoding=utf-8 | ||
| + | set fileformats=unix, | ||
| + | set mouse= | ||
| + | |||
| + | set secure | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== ambitioniertere vim config ===== | ||
| + | |||
| + | <code vim ~/ | ||
| + | unlet! skip_defaults_vim | ||
| + | source $VIMRUNTIME/ | ||
| + | set nocompatible | ||
| + | |||
| + | packadd! matchit | ||
| + | |||
| + | " | ||
| + | colorscheme torte | ||
| + | filetype plugin indent on | ||
| + | syntax on | ||
| + | |||
| + | highlight Normal cterm=NONE ctermbg=NONE ctermfg=NONE gui=NONE guibg=NONE guifg=NONE | ||
| + | |||
| + | set autoindent | ||
| + | set backspace=indent, | ||
| + | set encoding=utf-8 | ||
| + | set fileformats=unix, | ||
| + | set hlsearch | ||
| + | set ignorecase | ||
| + | set incsearch | ||
| + | set list | ||
| + | set listchars=tab: | ||
| + | set mouse= | ||
| + | set number | ||
| + | set relativenumber | ||
| + | set ruler | ||
| + | set scrolloff=5 | ||
| + | set shiftwidth=0 | ||
| + | set showcmd | ||
| + | set showmatch | ||
| + | set showmode | ||
| + | set signcolumn=number | ||
| + | set smartcase | ||
| + | set smartindent | ||
| + | set smarttab | ||
| + | set smoothscroll | ||
| + | set softtabstop=-1 | ||
| + | set tabstop=4 | ||
| + | set timeout | ||
| + | set ttimeout | ||
| + | set ttimeoutlen=-1 | ||
| + | set wildmenu | ||
| + | |||
| + | set secure | ||
| + | </ | ||
| + | |||
| + | <file vim ~/ | ||
| + | unlet! skip_defaults_vim | ||
| + | source $VIMRUNTIME/ | ||
| + | set nocompatible | ||
| + | |||
| + | packadd! matchit | ||
| + | |||
| + | colorscheme slate | ||
| + | " | ||
| + | " | ||
| + | filetype plugin indent on | ||
| + | syntax on | ||
| + | |||
| + | highlight Normal cterm=NONE ctermbg=NONE ctermfg=NONE gui=NONE guibg=NONE guifg=NONE | ||
| + | |||
| + | set backspace=indent, | ||
| + | set encoding=utf-8 | ||
| + | set fileformats=unix, | ||
| + | set hlsearch | ||
| + | set ignorecase | ||
| + | set incsearch | ||
| + | set mouse= | ||
| + | set number | ||
| + | set relativenumber | ||
| + | set ruler | ||
| + | set scrolloff=5 | ||
| + | set shiftwidth=0 | ||
| + | set showcmd | ||
| + | set showmatch | ||
| + | set showmode | ||
| + | set signcolumn=number | ||
| + | set smartcase | ||
| + | set smarttab | ||
| + | set smoothscroll | ||
| + | set softtabstop=-1 | ||
| + | set tabstop=4 | ||
| + | set timeout | ||
| + | set ttimeout | ||
| + | set ttimeoutlen=-1 | ||
| + | set wildmenu | ||
| + | |||
| + | "set list | ||
| + | "set listchars=tab: | ||
| + | |||
| + | set secure | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== allgemeines ===== | ||
| + | |||
| + | den " | ||
| + | > aptitude -y install vim | ||
| + | |||
| + | [[https:// | ||
| + | > vimtutor de | ||
| + | |||
| + | [[https:// | ||
| + | > vimtutor en | ||
| + | |||
| + | anständige Farben und guter Kontrast bei weißem und schwarzem Hintergrund + [[https:// | ||
| + | # echo -e ": | ||
| + | |||
| + | oder in Kurzform für das Home-Verzeichnis so [[https:// | ||
| + | # echo -e ": | ||
| + | oder | ||
| + | # echo -e ": | ||
| + | |||
| + | schaltet im vim die Zeilennummerierung an: | ||
| + | :set nu | ||
| + | |||
| + | schaltet im vim die Zeilennummerierung aus: | ||
| + | :set nonu | ||
| + | |||
| + | zeigt im vim die Zeilenumbrüche an: | ||
| + | :set list | ||
| + | |||
| + | |||
| + | ==== Encoding ==== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | um eine Datei mit dem VI in einem neuen Encoding zu speichern, muss das neue Encoding dem Schreibkommando übergeben werden: | ||
| + | > vi datei.txt | ||
| + | ... | ||
| + | :write ++enc=utf-8 datei.txt | ||
| + | |||
| + | Das Encoding bei Start von '' | ||
| + | # most shells on *nix / pwsh on windows | ||
| + | vim --cmd 'set encoding=utf-8' | ||
| + | |||
| + | Es gibt einen Unterschied zwischen "'': | ||
| + | |||
| + | **'' | ||
| + | Legt die in Vim verwendete Zeichencodierung fest. Es gilt für Text in den Puffern, Registern, Strings in Ausdrücken, | ||
| + | Das Ändern dieser Option wird die Kodierung des bestehenden Textes in Vim nicht ändern. Es kann dazu führen, dass Nicht-ASCII-Text ungültig wird. Es sollte normalerweise auf seinem Standardwert gehalten oder beim Start von Vim gesetzt werden. | ||
| + | Normalerweise entspricht ' | ||
| + | |||
| + | **'' | ||
| + | Legt die Zeichencodierung für die Datei dieses Puffers fest. Wenn sich „fileencoding“ von „encoding“ unterscheidet, | ||
| + | Wenn ' | ||
| + | __WARNUNG: | ||
| + | Konvertierung kann zu Informationsverlust führen! Wenn „Kodierung“ „utf-8“ oder eine andere Unicode-Kodierung ist, erfolgt die Konvertierung höchstwahrscheinlich so, dass die umgekehrte Konvertierung denselben Text ergibt. Wenn die ' | ||
| + | |||
| + | |||
| + | ==== Byte Order Mark (BOM) ==== | ||
| + | |||
| + | setzen: | ||
| + | :set bomb | ||
| + | |||
| + | entfernen: | ||
| + | :set nobomb | ||
| + | |||
| + | * Wenn eine Datei geschrieben wird und die folgenden Bedingungen erfüllt sind, wird der Datei eine BOM (Byte Order Mark) vorangestellt: | ||
| + | * diese Option ist an | ||
| + | * die Option ' | ||
| + | * '' | ||
| + | Einige Anwendungen verwenden das BOM, um die Codierung der Datei zu erkennen. | ||
| + | Wird häufig für UCS-2-Dateien unter MS-Windows verwendet. | ||
| + | Bei anderen Anwendungen verursacht es Probleme, zum Beispiel: | ||
| + | "'' | ||
| + | Gcc akzeptiert keinen BOM. Wenn Vim eine Datei liest und '' | ||
| + | |||
| + | |||
| + | ===== die 16 wichtigsten vim-Kommandos ===== | ||
| + | |||
| + | < | ||
| + | [Esc] - in den Befehls-Modus wechseln | ||
| + | i - links vom Cursor in den Einfüge-Modus wechseln | ||
| + | I - links von der Zeile in den Einfüge-Modus wechseln | ||
| + | o - unter dem Cursor eine neue Zeile im Einfüge-Modus öffnen | ||
| + | O - über dem Cursor eine neue Zeile im Einfüge-Modus öffnen | ||
| + | a - rechts vom Cursor in den Einfüge-Modus wechseln | ||
| + | A - rechts von der Zeile in den Einfüge-Modus wechseln | ||
| + | s - das Zeichen, auf dem der Cursor steht, enfernen und genau an der Stelle in den Einfüge-Modus wechseln | ||
| + | S - die Zeile, auf dem der Cursor steht, leeren und in den Einfüge-Modus wechseln | ||
| + | . - wiederholt den letzten Befehl -> im nvi anders | ||
| + | u - macht die letzten Befehle rückgängig (Undo) -> im nvi anders | ||
| + | [Strg]+[R] | ||
| + | x - löscht das Zeichen, auf dem der Cursor steht | ||
| + | dd - löscht die ganze Zeile (und fügt es in den Puffer ein) | ||
| + | yy - fügt die Zeile, in der der Cursor steht, in den Puffer ein | ||
| + | p - fügt den Inhalt aus dem Puffer in der Datei ein | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== weitere vim-Kommandos ==== | ||
| + | |||
| + | < | ||
| + | cw - überschreibt das aktuell ausgewählte Wort | ||
| + | w - springt ein Wort anhand der Worttrenner weiter | ||
| + | z.B.: Ob beispielsweise mehr als nur " | ||
| + | kann beispielsweise an Hand einer IP-Adresse (127.0.0.1) getestet werden. | ||
| + | Ursprünglich wurden Wörter nur durch Leerzeichen/ | ||
| + | in dem Fall wäre die komplette IP-Adresse ein Wort, in vielen neueren Shells wird eine | ||
| + | IP-Adresse aber als 7 Worte angesehen => " | ||
| + | G - Springt zum Dateiende | ||
| + | [Zahl]G | ||
| + | dG - löscht den gesamten Bereich unterhalb des Cursors | ||
| + | d1G - löscht den gesamten Bereich oberhalb des Cursors | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== mit vim mehrere Dateien gleichzeitig öffnen ==== | ||
| + | |||
| + | > vim datei_1.txt datei_2.txt datei_3.txt | ||
| + | < | ||
| + | :n - zur nächsten Datei wechseln | ||
| + | :N - zurück zur vorhergehenden Datei wechseln | ||
| + | :e# - zum Anfang zurück bzw. zur 1. Datei wechseln | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== ein Vim-Fork ===== | ||
| + | |||
| + | [[https:// | ||
| + | 1976: Bill Joy schrieb den " | ||
| + | 1991: Bram Moolenaar schrieb " | ||
| + | 2014 kam " | ||
| + | siehe auch " | ||
| + | |||
