Suche…


Syntax

  • : Relative Nummer setzen
  • :Nummer setzen
  • : set nonumber /: set nonu
  • : pwd

Bemerkungen

Diese automatische Nachladen geschieht nur, wenn Sie bearbeiten vimrc in einer Version Vollversion von vim , die unterstützt autocmd .

Schnelle "Wegwerf" -Makros

Fügen Sie dies zu Ihrem vimrc hinzu:

nnoremap Q @q

Um mit der Aufnahme des Makros "Wegwerfen" zu beginnen, verwenden Sie qq . Um die Aufnahme zu beenden, drücken Sie q (im Normalmodus für beide).

Um das aufgezeichnete Makro auszuführen, verwenden Sie Q

Dies ist nützlich für Makros, die Sie viele Male hintereinander wiederholen müssen, danach aber nicht mehr verwendet werden.

Verwenden der Funktion zum Vervollständigen des Pfads in Vim

Dies ist sehr üblich. Sie speichern einen Pfad zu einer Datei oder einem Ordner, Sie öffnen Vim und versuchen, das, was Sie gerade gespeichert haben, zu schreiben. Sie sind jedoch nicht zu 100% sicher, dass sie korrekt ist.

Wenn Sie die Funktion zum Vervollständigen des Pfads wünschen und eine Datei /home/ubuntu/my_folder/my_file und eine andere Datei bearbeiten, die auf den Pfad der vorherigen Datei verweist:

Rufen Sie den Einfügemodus auf: Einfügen oder wie gewünscht. Als nächstes schreiben Sie /h . Wenn sich der Cursor unter h , drücken Sie Strg x und dann Strg f, damit der Editor ihn nach /home/ vervollständigt, da das Muster /h eindeutig ist

Angenommen, Sie haben zwei Ordner in /home/ubuntu/ namens my_folder_1 my_folder_2

und Sie möchten den Pfad /home/ubuntu/my_folder_2

wie gewöhnlich:

Aktivieren Sie den Einfügemodus

Schreiben Sie /h und drücken Sie Strg x und dann Strg f . Jetzt haben Sie /home/ Next und fügen Sie nach / home / hinzu und drücken Sie Strg x und dann Strg f . Jetzt haben Sie /home/ubuntu/ weil dieser Pfad eindeutig ist. Nun schreibe my after /home/ubuntu/ und drücke Strg x und dann Strg f . Der Editor vervollständigt Ihr Wort bis my_folder_ und der Verzeichnisbaum wird my_folder_ Verwenden Sie die Pfeiltasten, um den gewünschten auszuwählen.

Aktivieren Sie relative Zeilennummern

Um einige Textzeilen zu löschen, wenn Sie die genaue Anzahl der zu 10dd Zeilen nicht kennen, versuchen Sie es mit 10dd , 5dd und 3dd bis Sie alle Zeilen entfernen.

Relative Zeilennummern lösen dieses Problem. Angenommen, wir haben eine Datei, die Folgendes enthält:

sometimes, you see a block of 
text. You want to remove 
it but you 
cannot directly get the 
exact number of 
lines to delete 
so you try 
10d , 5d 
3d until 
you
remove all the block.

Wechseln Sie in den NORMAL-Modus: Esc

Nun führe aus :set relativenumber . Wenn Sie fertig sind, wird die Datei wie folgt angezeigt:

3 sometimes, you see a block of
2 text. You want to remove
1 it but you
0 cannot directly get the
1 exact number of
2 lines to delete
3 so you try
4 10d , 5d
5 3d until
6 you
7 remove all the block.

Dabei ist 0 die Zeilennummer für die aktuelle Zeile und sie zeigt auch die reale Zeilennummer vor der relativen Nummer. Sie müssen also nicht die Anzahl der Zeilen aus der aktuellen Zeile schätzen, um sie zu schneiden oder zu löschen, oder sie zu zählen einzeln.

Sie können jetzt Ihren üblichen Befehl wie 6dd und sind sich der Anzahl der Zeilen sicher.

Sie können auch die Kurzform desselben Befehls verwenden :set rnu , um relative Zahlen zu :set nornu , und :set nornu , um dieselben auszuschalten.

Wenn Sie auch :set number oder :set number bereits eingestellt haben, erhalten Sie die Zeilennummer der Zeile, in der sich der Cursor befindet.

3 sometimes, you see a block of 
2 text. You want to remove 
1 it but you 
4 cannot directly get the 
1 exact number of 
2 lines to delete 
3 so you try 
4 10d , 5d 
5 3d until 
6 you 
7 remove all the block. 

Zeilennummern anzeigen

Um die Zeilennummern in der Standardansicht anzuzeigen, geben Sie ein

:set number

Zeilennummern ausblenden

:set nonumber

Es gibt auch eine Abkürzung für oben. nu ist gleich number .

:set nonu

Zum Ausblenden von Zeilennummern können wir auch verwenden

:set nu!

Zuordnungen zum Beenden des Einfügemodus

Für viele Vim-Benutzer ist der Esc zu schwer zu erreichen, und am Ende finden Sie ein anderes Mapping, das von der Home-Reihe aus leicht zu erreichen ist. Beachten Sie, dass Strg - [ auf einer englischen Tastatur mit Esc übereinstimmen kann und viel einfacher zu erreichen ist.

j k

inoremap jk <ESC> 

Dieser ist wirklich leicht auszulösen; Zerschlage einfach deine ersten beiden Finger gleichzeitig in der Heimatreihe. Es ist auch schwer aus Versehen auszulösen, da "jk" in keinem englischen Wort vorkommt und wenn Sie sich im normalen Modus befinden, tut es nichts. Wenn Sie nicht zu viel "Blackjack" inoremap kj <ESC> , sollten Sie auch die inoremap kj <ESC> hinzufügen, damit Sie sich keine Gedanken über das Timing der beiden Schlüssel machen müssen.

Feststelltaste

Linux

Unter Linux können Sie mit xmodmap dasselbe wie Esc mit Caps Lock tun. Fügen Sie dies in eine Datei ein:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

Führen Sie dann die xmodmap file . Damit wird Caps Lock wieder mit Esc belegt .

Windows

Unter Windows können Sie SharpKey oder AutoHotkey verwenden .

Mac OS

Wenn Sie über macOS 10.12.1 oder höher verfügen, können Sie Caps Lock mit Escape in den Systemeinstellungen neu zuordnen. Wählen Sie Tastatur aus, wechseln Sie zur Registerkarte Tastatur und klicken Sie auf Modifikatortasten.

Tastatureinstellungen

Wie Sie das Verzeichnis und / oder den Pfad der Datei, die Sie bearbeiten, kennen

Um den Pfad des Verzeichnisses zu kennen, in dem sich Ihre Datei befindet, können Sie Folgendes verwenden:

Esc zum Aufrufen des Befehlsmodus

:pwd

Dadurch wird der Pfad zum Verzeichnis am unteren Rand des Editors wie folgt gedruckt

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

Wenn Sie wissen möchten, welchen Dateinamen Sie relativ zum vim-Arbeitsverzeichnis bearbeiten, können Sie Folgendes verwenden:

Esc zum Aufrufen des Befehlsmodus CTRL G

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

Um den absoluten Pfad zu der Datei zu erhalten, die Sie gerade bearbeiten, verwenden Sie

Esc zum Aufrufen des Befehlsmodus

1 und dann STRG G

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

Suche innerhalb eines Funktionsblocks

Für die Suche nach Text foo innerhalb eines {} Block umgibt den Cursor verwenden Sie den folgenden Befehl ( <ESC> - Escape - Taste, <CR> - Enter - Taste):

vi{<ESC>/\%Vfoo<CR>

Jetzt können Sie durch Drücken von n und p zwischen den Übereinstimmungen innerhalb des Blocks springen. Wenn Sie die hlsearch Option aktiviert haben, werden alle Übereinstimmungen hervorgehoben. \%V ist ein spezieller Suchmusterteil, der vim anweist, nur im visuell ausgewählten Bereich zu suchen. Sie können auch ein Mapping wie folgt erstellen:

:vnoremap g/ <ESC>/\%V

Danach wird der obige Befehl folgendermaßen gekürzt:

vi{g/foo<CR>

Ein weiterer nützlicher Trick besteht darin, alle Zeilen mit dem Muster zu drucken:

vi{
:'<,'>g/foo/#

Der Bereich '<,'> wird automatisch eingefügt.

Siehe :help range und :help :g .

Gefundene Zeile kopieren, verschieben oder löschen

Viele Benutzer befinden sich in einer Situation, in der sie eine Zeile nur schnell kopieren, verschieben oder löschen und dorthin zurückkehren möchten, wo sie sich befanden.

Wenn Sie eine Zeile verschieben möchten, die das lot unterhalb der aktuellen Zeile enthält, geben Sie normalerweise Folgendes ein:

/lot<Esc>dd<C-o>p

Um die Produktivität zu steigern, können Sie diese Abkürzung in folgenden Fällen verwenden:

" It's recommended to turn on incremental search when doing so
set incsearch

" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``

Also eine Suche wie diese:

/lot$m

verschiebt die Zeile mit dem lot unter die Zeile, auf der sich der Cursor befand, als Sie die Suche gestartet haben.

Schreiben Sie eine Datei, wenn Sie `sudo` vergessen haben, bevor Sie vim starten

Dieser Befehl speichert die geöffnete Datei mit Sudo-Rechten

:w !sudo tee % >/dev/null

Sie können auch w!! eine Datei als root ausschreiben

:cnoremap w!! w !sudo tee % >/dev/null

Laden Sie vimrc beim Speichern automatisch neu

Um vimrc beim Speichern automatisch neu zu laden, fügen Sie dem vimrc Folgendes vimrc :

if has('autocmd') " ignore this section if your vim does not support autocommands
    augroup reload_vimrc
        autocmd!
        autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
    augroup END
endif

und dann zum letzten Mal:

:so $MYVIMRC

vimrc Sie das nächste Mal Ihren vimrc , wird er automatisch neu geladen.

nested ist nützlich, wenn Sie vim-airline verwenden. Beim Laden der Airline werden einige automatische Befehle ausgelöst. Da Sie jedoch gerade einen automatischen Befehl ausführen, werden diese übersprungen. nested ermöglicht das Auslösen verschachtelter Autobefehle und das ordnungsgemäße Laden der Fluggesellschaft.

Kommandozeilenabschluss

wildmenu im wildmenu , wildmenu Vorschläge zur Fertigstellung der Befehlszeile wildmenu werden sollen.
Führen Sie folgendes aus

set wildmenu
set wildmode=list:longest,full

Wenn Sie jetzt sagen :color Tab ,

Du wirst kriegen

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow