2013-04-24 3 views
5

우리가 텍스트의 멋진 무리가 있다고 가정 :시각적 선택을 필터링하는 방법은 무엇입니까?

Hello world 

을 우리는 비주얼 모드에서 world을 선택합니다. 그리고 우리는이처럼 빛나는 명령을 사용하여 시각적 인 선택을 필터링 할 수 있습니다 :

:'<,'>!echo foobar 

그러나, 그 대신 상대 worldfoobar로 전체 라인을 대체 할 것이다. 이유는 무엇이며 world을 어떻게 바꿀 수 있습니까?

+0

범위는 줄입니다. – Kent

+2

': help visual_example'을 참조하십시오. –

+0

@evilotto 멋진 트릭이 예전에 찾지 못했습니다 .. – Kent

답변

6

:! 필터 명령은 항상 (이 : 시작 명령을 삽입, 원래 VI만큼 오래) 전체 라인에 작동하고, '<,'> 범위도 단지 라인를 지정합니다.

결과를 얻기 위해 훌륭한 vis plugin을 사용할 수 있습니다. 그것은 시각적으로 선택된 텍스트에 다음 명령을 제한하는 :B 명령을 제공합니다.

:'<,'>B !echo foobar 

플러그인은 모든 종류의 Ex 명령에 사용할 수 있습니다. 선택 내에서 :substitute에 대해서도 \%V 원자를 사용할 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다! 플러그인 내부에서 사용하고 싶습니다. 그렇다면 모든 사용자가 vis 플러그인을 측면에서 설치해야합니까, 아니면 더 나은 방법이 있습니까? –

+0

Vimscript에서 쉽게 구현할 수있는 간단한 하위 집합으로 사용을 줄일 수 없다면이 플러그인을 vis 플러그인에 위임하는 것이 좋습니다. 왜 바퀴를 다시 발명 했지?! –

관련 문제