2010-04-21 4 views
6

Vim에서 밑줄이 표시된 제목에 대해 텍스트 서식을 지정하는 방법이 있습니까?Vim : 밑줄이 표시된 제목을 수정하지 않고 텍스트 줄 바꿈 ("gq")

#Level 1 heading 
##Level 2 heading 
###Level 3 heading 

만 레벨 1 & 2 : 나는 그것을 읽고 생각하는

Level 1 heading 
=============== 

Level 2 heading 
--------------- 

내가, 밑줄 스타일의 좋아해요 마크 다운에서

나타내는 제목의 두 가지 방법이있다 보다 나은.

예를 들어 :set textwidth=72과 같이 Vim에서 마크 다운을 작성하면 gggqG으로 전체 문서를 다시 형식화 할 수 있지만 이러한 밑줄이 표시된 제목을 단락으로 처리하고 한 줄로 함께 짜 넣습니다. 나는 다음과 같이 시작한다면 :

Lorem ipsum =========== 

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat. 

내가 서식에서 빔을 방지 할 수있는 방법이 있나요 :

Lorem ipsum 
=========== 

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 

전체 경로에 gq를 실행 한 후,이 같은 끝낼 것 밑줄이 그어진 표제?

formatexpr 또는 formatprg을 사용하는 솔루션이 있어야한다고 가정합니다. 나는 par에 대한 문서를 연구했으며 매우 강력 함에도 불구하고 이것이 그 특징 중 하나는 아닌 것처럼 보입니다. 그래서 formatprg을 사용하여 markdown을 이해할 수있는 또 다른 외부 프로그램이 있는지, 아니면 formatexpr 설정으로 vimscript를 사용하여 달성 할 수 있는지 궁금합니다.

답변

6

하나의 옵션 HTH.

당신의 밑줄 문자열이 고정 된 크기 인 경우에, 당신은 단지 그 추가 할 수 있습니다 더-than- 사용

:set comments+=n:--,n:== 

: 그들은 변수 (하나 이하)의 크기라면

:set comments+=:---------------,:=============== 

을 하나의 단락이 - 또는 =으로 시작하고 후속 행에 주석 문자열이 추가되지 않도록합니다.

위의 +을 제거하여 문자열을 추가하는 대신 주석 만 설정하십시오.

서식이 예기치 않게 작동하는 경우가 있습니다 (예 : 연속 된 줄에 밑줄 표시). 이 작업을 수행하는 데 더 적절한 방법이있을 것이라고 확신하지만 희망적으로 시작하면됩니다.

+0

이런 종류의 해킹은 느껴지지만'q' 플래그가'formatoptions' 설정에 포함되어있는 한 괜찮습니다. 내 밑줄 문자열은 대개 위의 줄에있는 텍스트의 길이와 일치하므로 가변 크기 설정을 사용했습니다. 도와 줘서 고마워. 답변에 나열된 도움말 참조 이외에도 도움이되는 것으로 나타났습니다. [': help 30.6'] (http://vimdoc.sourceforge.net/htmldoc/usr_30.html#30.6) – nelstrom

0

적어도 일부 매크로를 설정할 수 있습니다.

예. 첫 번째 헤드 라인 - 밑줄 검색과 ​​첫 번째 단락에 어떻게 든 텍스트 위치보다 그 다음 밑줄 마이너스 3 라인 영역을 선택 visuallí 다음, 아래 두 줄을 이동 한 다음 포맷 :

qa/^===========$/jjv/^===========$/-3<CR>gqq 

는 이제 사용할 수 있습니다 귀하의 a 매크로.

그렇다고 작품이 comments 변수에 밑줄 문자열을 추가하는 것입니다