Vim-주석 문자가있는 서라운드 주석 라인


27

오늘 나는 종종 코드에서 섹션을 다음과 같이 정의하고 싶다는 것을 깨달았습니다.

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

그러나 그것은 지루합니다. 다음과 같은 줄이 있다고 가정합니다.

# Helper Functions #

vim키를 짧게 감싸는 키 스트로크 는 무엇입니까 #? Shift는 이 도전에서 키 스트로크로 계산 되지 않습니다 .

테스트 사례 :

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
"vim keystrokes"는 기본적으로 ST2에서 Ctrl-C 또는 Ctrl-R과 같은 IDE의 명령을 실행하는 것을 의미하기 때문에이 질문을 논외 주제로 닫으려고합니다. 이것은 어떤 형태로든 코딩되지 않습니다.
Optimizer

3
@Optimizer Vim은 여러 가지 다른 구문 코딩을 가진 튜링 완전한 언어입니다 (예 : 매크로 사용). 편집을위한 기본 방법은 객체 (동작) 동사 (동작)를 기반으로합니다. 이미 vim golfing 웹 사이트 인 www.vimgolf.com이 있습니다. (그러나 나는이 특정 질문이 꽤 지루하다는 데 동의합니다)
Hjulle

1
@Optimizer : 질문을 옮길 수있는 더 적합한 SE 사이트가 있습니까? vim의 광범위한 스크립팅 / 매크로 언어를 고려할 때 일부 사람들은 언어 자체를 언어로 생각할 수 있습니다.
shearn89

1
@ shearn89 적대적인? 무슨 소리 야? PPCG는이 사이트입니다.
Optimizer

2
매크로 시스템에서 프로그램을 작성할 수 있다면 왜 다른 IDE도 허용되지 않습니까? "프로그래밍이 아닌"이유는 무엇입니까?
Hjulle

답변:


40

11 8 7 키 스트로크

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.

(Y = yy를 상기시켜 준 손잡이에 감사)


3
교체 yyY문자를 저장합니다.
Doorknob

2
와우, 그 r명령은 강력합니다
justhalf

10

16 15 14 키 스트로크

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

간단한 접근 방식 : 줄을 복제하고 모든 문자를로 바꾸고 #결과를 복사하여 위에 붙여 넣습니다.

나는 + 와 +에 대해 두 개 대신 각각 하나의 키 입력으로 계산 P하고 있습니다. 즉, 질문은 "명령"을 계산하도록 지정하는데, 여기서 대체 계산 방법을 잘 모르겠습니다.:ShiftpShift;


@rcrmn의 답변과 동일한 의견 : 문자를 저장하려면 바꾸기 yy로 바꾸십시오 Y.
Doorknob

난 당신이 교체 명령을 실행하기 위해 소개를 쳐야로는, 실제로 14 키 입력을 믿습니다
rorlork

@rcrmn 오, 잘 잡아.
Martin Ender
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.