Wie kann ich den Inhalt der Register vor dem Einfügen einfach auflisten?

10

Ich benutze die Register häufig zum Kopieren / Einfügen, habe aber immer vergessen, in welchem ​​Register sich mein Inhalt befindet.

Gibt es eine Möglichkeit, die Register vor dem Einfügen anzuzeigen?

Im Idealfall bleibt das Register bei der Auswahl des gewünschten Registers auf dem Bildschirm.

nobe4
quelle

Antworten:

14

Dieses Peekaboo- Plugin eignet sich sehr gut für die Vorschau von Registern. Wenn Sie "oder @im normalen Modus oder ctrl-rim Einfügemodus drücken , wird eine Teilung geöffnet, um den Inhalt des Registers anzuzeigen.

Vorschau aus dem Plugin Repo:

Guck-Guck

Tommy A.
quelle
Dieses Plugin wäre viel weniger unangenehm, wenn die Tastenkombinationen vom Benutzer konfiguriert werden könnten. Das Binden an "und @im normalen Modus unterbricht nahezu alle Makros, die Register verwenden. FWIW.
Sato Katsura
Hmm, ich habe keine Probleme mit den rekursiven Makros, die ich normalerweise verwende, selbst wenn es sich um Register handelt. Das Plugin deaktiviert sich bei der Wiedergabe von Makros mit @. Die README-Datei stellt fest, dass nicht rekursive Karten Probleme verursachen. Ich bin damit einverstanden, dass es schön wäre, wenn es so konfiguriert werden könnte, dass nur die Register angezeigt werden.
Tommy A
Hier ist etwas Triviales, das kaputt geht::%g/text/ normal "Ayy
Sato Katsura
Das Plugin wurde aktualisiert, um ein konfigurierbares Präfix zu verwenden. github.com/junegunn/vim-peekaboo/pull/41
Tommy A
6

Ich habe diese Zuordnung erstellt, um die Registerliste anzuzeigen und die einzufügende auszuwählen:

nnoremap "p :reg <bar> exec 'normal! "'.input('>').'p'<CR>

Dies zeigt die Registerliste mit an :regund führt den normalen Befehl aus

"Xp 

Wo Xist das Ergebnis von input().

nobe4
quelle
2

Ich würde empfehlen, zu verwenden

:reg

Es wird der Inhalt aller Register angezeigt (Sie können mit j und k durchblättern).

Wenn Sie nur den Inhalt eines Registers anzeigen möchten, können Sie in den Befehlsmodus wechseln und eingeben

: Ctrl + r

dann das Register, zum Beispiel das x-Register

x

Dadurch wird der Inhalt des Registers in die Befehlszeile eingefügt. Sie können dann die Befehlszeile verlassen, nachdem Sie Ihr Register angezeigt haben.

DoYouEvenCodeBro
quelle
Was ist der Unterschied zwischen :disund :reg? Ich benutze immer die erstere.
Philip Kearns
Keine: :help :dis->:di[splay] [arg] Same as :registers. {not in Vi}
Boldewyn