2014-12-16 3 views
1

비주얼 블록 내에서 텍스트를 정당화하는 방법은 Vim에서 있습니까?비주얼 블록에서 텍스트를 맞 춥니 다.

p.e. 내 파일의 부분 예 :

text text |5 sm 23 | 
text text |1274 hc a4| 
text text | 33 rnd bc| 
text text | 28 yz 22 | 
text text |9808 yz 56| 

예상 출력 : :set virtualedit=all :

text text 5 sm 23 
text text 1274 hc a4 
text text 33 rnd bc 
text text 28 yz 22 
text text 9808 yz 56 

나는 virtualedit 수 있었다.
필자는 "23"다음에 두 개의 공백을 만들고 "22"다음에 공백 하나를 만들기 위해 공백이있는 열을 추가했습니다 (예제에서는 오른쪽에 |).
그런 다음 시각적 블록을 선택하고 예상 출력없이 :'<,'>ce
명령을 실행했습니다.

+1

프로그램을 작성해야합니다. btw, 내 이해에서,이 "중심"되지 않습니다, 당신은 텍스트가 시각적 범위에서 최대한으로 채워지 길 원합니다. 그리고 당신은 텍스트 줄 안쪽의 공간을 변경하고 싶습니다. ': center'는 그 공간에 닿지 않습니다. 그래서 당신은 당신 자신의 함수를 써야만합니다. – Kent

+0

맞습니다, 나는 Justify를 의미합니다. 내 질문에 바꿀거야. – Reman

답변

1

일반적으로 (내부 공백을 추가하여 왼쪽 여백과 오른쪽 여백)을 정당화합니다. center은 공백을 왼쪽과 오른쪽으로 동일하게 합산합니다. 전체 라인 정당화를위한 두 개의 플러그인이 있습니다

: 빔과

  • $VIMRUNTIME/macros/justify.vim 배는
  • Justify plugin 당신이 원하는대로

이이 블록 단위로 선택에 적용되는 간단한 구현을 제공합니다 , 당신은 blockwise 선택을 삭제해야합니다 별도의 라인/스크래치 버퍼에 넣어, 정당화 (선택 영역의 원래 너비까지), 다시 역으로하고 블록으로 다시 삽입하십시오. (그 경우, 내 UnconditionalPaste plugin은 편리한 glpgbp 매핑을 제공합니다.이 빈도는 수동으로 적용하거나 사용자 지정 매핑을 통해 자동화하십시오.

+1

안녕하세요. Ingo, 답변 해 주셔서 감사합니다. Justify 플러그인을 설치했지만 정확히 원하는 것은 아니 었습니다. 텍스트를 왼쪽으로 확장하지 않고 텍스트를 오른쪽으로 만 확장합니다. 켄트가 그의 코멘트에 썼던 것처럼 나는 그것을 스스로 써야 할 것이다. 한 줄에있는 단어 사이의 공백을 카운트하고 카운터로 목록에 넣은 다음 카운터로 나누고 다시 텍스트에 넣으십시오. – Reman

+1

': left' - 텍스트를 (별도의 줄에 이미) 정렬하여 고칠 수 있습니다. 나는 당신이 원하는 것을 정확히 수행하는 완전 자동화 된 솔루션이 필요하다면, 직접 플러그인을 구현할 생각이 전혀 없으며, 아마도 플러그인을 사용하여 아이디어를 얻을 수도있을 것입니다. –

관련 문제