2009-07-06 5 views
2

필자는 에뮬레이트하려고하는 편집자가 있습니다. 아주 좋은 기능이 몇 가지 있습니다. 편집기의 한 가지 기능은 파일의 줄을 숨기고 (장식은 없지만 접히는 것과 비슷 함) 표시되는 줄에만 명령 작업을 적용하는 것입니다. 그러면 숨겨진 선은 물갈퀴가 될 수 있습니다. 사용자VIM에서 복원 할 수있는 기능을 숨김, 표시 및 표시하는 선에만 기능을 적용 하시겠습니까?

 
    Smurf 
    Apple 
    Bubble 
    Tree 
    Dog 

사용자에게보고 예
는 말한다 쇼 비 매칭 라인 (SNML) E

 
    Smurf 
    Dog 

사용자가 명령 페이스트 후 라인 (PAL)을 실행 토큰, $ 말하자면 다음과 도착

 
    Smurf$ 
    Dog$ 

사용자는 말한다 쇼 - 모든 라인 (SAL)

 
    Smurf$ 
    Apple 
    Bubble 
    Tree 
    Dog$ 

나는 이것이 VIM에서 가능하다는 것을 알고 있지만 어떤 식 으로든 선을 수정하지 않고 선 속성을 저장하는 방법을 놓치고있다. ... 올바른 방향 또는 사고의 방법으로 저를 조금씩 이동하십시오

업데이트 : 내가 텍스트가 다음과 같은 변수의 도움으로 접어 방법을 조작 할 수 있습니다

:set foldtext=MyFoldingFunction 

를 사용

v:foldstart Line num of 1st folded line 
v:foldend Line num of last folded line 

필자는 텍스트 서식을 적용 할 때 함수를 적용하는 동안 줄을 모두 접었을 때 모든 폴드를 열거해야한다고 생각합니다. vim에 라인 속성을 저장하는 메서드가 정말 필요합니다 ... 여기 어둠의 모퉁이에서 나왔습니다.

답변

5

folddoopen 더 강력한 많은 당신이 원하는 것을 잠재적으로 될 수있다; 닫힌 폴드의 일부가 아닌 모든 행에 대해 일부 명령을 실행합니다. 현재 접힌되지 않은 모든 라인에 $를 추가하려면

:foldd norm A$ 

:h folddoopen:h folddocclosed를 참조 할 수 있습니다. 그것은 접힌 텍스트를 완전히 "숨기지"않습니다, 당신은 여전히 ​​접이식 마커를 볼 수 있습니다. 그러나 그것은 꽤 가깝습니다.

3

알고 계십니까? he : g (글로벌). regex 방식으로 줄을 설명 할 수 있다면 (실제로는 그렇지 않을 수도 있지만 종종 그렇습니다) ex 명령을 적용합니다. 예.

: g/\ (스머프 \ | 개 \)/표준 달러 (A $)

후, 스머프 또는 개 라인을 찾아 사용 : 그는 정상적인 일반 모드는 줄의 끝에 $를 추가 적용 할 수 있습니다.

이것은 당신의 편집기로 '시각적'으로되지 않을 수도 있습니다,하지만

관련 문제