Vim - Surround-Kommentarzeile mit Kommentarzeichen


27

Heute habe ich gemerkt, dass ich Abschnitte in meinem Code oft so definieren möchte:

####################
# Helper Functions #
####################

Aber das ist langweilig. Angenommen, ich habe eine Zeile wie diese:

# Helper Functions #

Was ist der kürzeste Satz von vim Tastendruck, um ihn in ein einzuschließen #? Die Umschalttaste zählt bei dieser Herausforderung nicht als Tastendruck.

Testfälle:

Input: "#test test test#"
Output:
################
#test test test#
################

Input: "#this is a nice block comment#"
Output:
##############################
#this is a nice block comment#
##############################

Input: "# s p a c e s must be supported a l s o#"
Output:
########################################
# s p a c e s must be supported a l s o#
########################################

3
Ich stimme dafür, diese Frage als nicht thematisch zu schließen, da "vim-Tastenanschläge" im Grunde bedeutet, Befehle einer IDE wie Strg-C oder Strg-R in ST2 auszuführen. Dies ist keine Kodierung in irgendeiner Form.
Optimierer

3
@Optimizer Vim ist eine aufregende vollständige Sprache (z. B. mithilfe von Makros) mit mehreren unterschiedlichen Konstrukten. Die primäre Methode zum Bearbeiten basiert auf Verben (Aktionen) und Objekten (Bewegungen). Es gibt bereits eine beliebte Webseite für Vim Golf: www.vimgolf.com. (Aber ich stimme zu, dass diese spezielle Frage ziemlich langweilig ist)
Hjulle

1
@Optimizer: Gibt es eine passendere SE-Site, auf die die Frage verschoben werden könnte? In Anbetracht der umfangreichen Skriptsprache / Makrosprache von vim wird es von manchen als eine Sprache für sich betrachtet.
shearn89

1
@ shearn89 Feindlich? Worüber redest du ? PPCG ist diese Seite.
Optimierer

2
Warum sind auch andere IDEs nicht zulässig, wenn Sie Programme in ihrem Makrosystem schreiben können? Was macht es "nicht programmieren"?
Hjulle

Antworten:


40

11 8 7 Tastenanschläge

YpVkr#p

Yp - duplicate current line, leaving the cursor at the lower of the two
V - enter visual line mode
k - go up and select both lines
r# - replace every selected character with #. Leaves visual mode and leaves cursor at the upper line.
p - put the yanked line (the original) on the next line.

(Danke an Türklinke für die Erinnerung an J = JJ)


3
Ersetzen Sie yydurch Y, um ein Zeichen zu speichern.
Türklinke

2
Wow, dieser rBefehl ist mächtig
Hälfte des

10

16 15 14 Tastenanschläge

Yp
:s/./#/g
<cr>
YkP

Der einfache Ansatz: Duplizieren Sie die Zeile, ersetzen Sie alle Zeichen durch # , kopieren Sie das Ergebnis und fügen Sie es oben ein.

Ich zähle Pund :drücke jeweils eine Taste (statt zwei für Shift+ poder Shift+ ;). Davon abgesehen spezifiziert die Frage das Zählen von "Befehlen", bei denen ich nicht sicher bin, wie die Ersetzung zu zählen ist.


Gleicher Kommentar wie bei der Antwort von @ rcrmn: Ersetzen yydurch Y, um ein Zeichen zu speichern.
Türklinke

Ich glaube, es sind tatsächlich 14 Tastenanschläge, da Sie Intro
drücken

Oh, guter Fang.
Martin Ender
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.