오류를 억제하면서 Vim에서 확인을 요구하면서 검색 패턴과 함께 argdo를 사용하여 라인을 삭제하십시오


4

Win 7에서 gVim 7.3.46을 사용합니다.

사용하기가 꽤 쉽습니다. argdo 검색하기 args 패턴에 대한 파일을 만들고 오류를 표시하지 않고 확인을 요구하면서 대체합니다.

:argdo %s/pattern/replace/gec | update

그러나 패턴이 포함 된 전체 줄을 삭제하고 싶습니다. 나는 다음을 사용한다.

:argdo %/pattern/d | update

그러나 나는 오류를 억제하거나 확인을 요구할 수 없다. 이것을 할 수있는 방법이 있습니까? 감사!

(또한, "더"를 설정하는 방법이 있습니까?) 감사합니다!)

답변:


8

명령 앞에 다음을 사용하여 일부 오류를 억제 할 수 있습니다. :silent. 패턴이 포함 된 줄을 삭제하려면 다음 명령을 사용합니다. :g/pattern/d. 그래서 다음은 당신이 원하는 것을해야합니다.

:silent argdo g/pattern/d | update

만나다

:help :silent
:help :g

"더"를 끄려면,

:set nomore

또한 보아라.

:help 'more'
:help more-prompt
:help messages

확인을 처리하는 방법은 무엇을 확인해야하는지에 달려 있습니다. 퍼팅 ! 명령이 종종 "어쨌든 해."


감사! 내가 그걸 얻을 수있는 방법이 있니? s///gec 기능성? 어쩌면 뭔가 argdo %s/pattern/^$//gec? 그러나 이것은 전체 줄이 아닌 줄의 내용 만 삭제한다고 생각합니다.
Richard Herron

2
얻으려면 s///gec 전체 행을 삭제하려면 다음을 사용하십시오. %s/.*pattern.*\n//ec. 그만큼 \n DOS 파일의 경우에도 줄 끝 표시와 일치합니다. 그만큼 g 전체 줄을 삭제하는 경우에는 필요하지 않습니다.
garyjohn

1
이게 정말 대단해! :set nomore, :arga **/*:argdo execute 'normal gg=G' | w 작업중인 프로젝트에 들여 쓰기가 모두 수정되었습니다.
shicholas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.