1
1 1
1 1
1111111
1 1
1 1
1 1
위와 같은 세 가지 다른 블록 문자의 행을 그려보십시오.
^V
위를 선택하면 A
길이 줄이 다르기 때문에 행의 마지막 문자로 모든 문자 를 변경할 수 없습니다 . 이전 블록 문자는
:s/\%V1/T/g
"이전 블록 문자는 '1에서 만든 T입니다. /T/
무엇이든 변경하십시오 .
그러나 위에 표시된 마지막 블록 문자를 선택하면 모든 '1'에서 'A'가 A * 지점으로 변경되고 나머지는 그대로 남아 있습니다.
* 가장 짧은 라인.
모든 선을 같은 길이로 만들기 위해 공백으로 채웠습니다. (나는 vim을 처음 사용하므로 더 나은 스크립트를 작성할 수 있다고 확신합니다.)
참고 : A의 피크는 2 번 라인에서 시작되었습니다.
let Maxlen = 0
" Find longest line
for i in range(2,8)
let t = getline(i)
let a = strlen(t)
if a > Maxlen
Maxlen = a
endif
endfor
" Append spaces 'til all lines are the same length.
for i in range(2,8)
let t = getline(i)
let a = strlen(t)
if a < Maxlen
let b = Maxlen - a
execute "normal!" . i . "gg0" . b . "A "
endif
endfor
그 후 :s/\%V1/T/g
, 행의 마지막 블록 문자에 광고 된대로 작동했습니다.
추신 : 나는 execute
위 의 선이 점없이 작동해야 한다는 것을 읽었 지만 나에게는 효과가 없었습니다.