2009-06-23 5 views
5

": a"명령이 있지만 여러 줄이므로 argdo는 각 파일에 대해 텍스트를 다시 묻습니다.vim에서 argdo로 텍스트를 추가/삽입하는 방법은 무엇입니까?

"."대신 줄 바꿈으로 끝나는 ": a"의 대체 버전을 사용할 글로벌 명령 (g/pat/명령)이 문서에 나와 있습니다. ("\"로 이스케이프하여 개행 문자를 포함 할 수 있습니다). 그러나 나는 이것을 작동시킬 수 없었다.

내가 본 유일한 방법은 먼저 텍스트 - 투 - 추가 할 명명 된 레지스터로, 다음 사용 꺼낼 것입니다 :

:argdo put x     " where x is the register 

을 내가

:argdo append myTextHere 
처럼 뭔가를 바라고 있어요

답변

4

내가 버퍼에 텍스트를 삽입하려고하는지 명확하지 않다.

:argdo exe 'normal osometext' 

그것에서 줄 바꿈 텍스트를 삽입 : 현재 행 다음에 그것을 원하는 경우

:argdo exe "normal osometext\<CR>anewline" 
+0

이봐, 그거 꽤 멋지다. 전에는 "정상"이라고 보았지만 사용하지는 않았습니다. BTW 나는 이것도 또한 작동 발견 : : argdo normal osometext – 13ren

+0

내가 명확하게하기 위해 귀하의 요청에 대답해야한다 : 때로는 각 파일 (예 : 라인 2)의 같은 줄에 삽입하고 싶습니다; 때로는 특정 패턴 후에. 아마도 다른 파일에서 다를 수 있기 때문에 아마 현재 라인의 관점에서 그것을하고 싶지 않을 것입니다. 그러나 여러분의 접근법은 삽입하기 전에 선을 보거나 패턴을 찾는 것으로 쉽게 적응할 수있을만큼 강력합니다. – 13ren

+0

이것은 아름답습니다, 나는 이것을 사랑합니다! 예 : argdo exe 'normal zR'모든 탭을 펼칩니다. – user3751385

1

vim에서 텍스트를 채우면 기본 버퍼 인 "에 저장됩니다. 예를 들어 <C-R>"을 입력하여 버퍼를 삽입 모드로 붙여 넣을 수 있습니다. 그래서 당신이 필요로하는 것은 argdo put "

+0

감사합니다. at에서는 레지스터 설정과 관련이 없습니다. something like : : argdo myText를 추가합니다. 질문을 명확히 할 것입니다. – 13ren

2

10 NR 줄 끝에서 텍스트를 추가하려면 :

:argdo call append(10, "hello world") 

가 텍스트를 추가하려면 10 호선 :

:argdo call setline(10, getline(10)."textappended") 
+0

감사합니다, 그것은 실행 가능한 것 같습니다. 이 작업을 수행하기 위해 다른 레벨로 전환해야하는 것처럼 보입니다 ("통화"또는 Brian의 "일반"사용). – 13ren

관련 문제