vi [m] 다른 파일에서 행 범위를 읽습니다.


9

Linux file_B에서 vim으로 편집하면 에서 10-25 행을 추가하고 싶습니다 file_A. 예 : 하나는 완전히 동일한 헤더를 가진 HTML 문서의 전체 세트를 가지고 있으며 템플릿을 생성하고 시작할 수는 있지만 여전히 다음과 같습니다.

하나의 파일에서 여러 줄을 삽입하고 현재 편집중인 파일에 추가하는 간단하고 우아한 방법을 찾고 있습니다. vim.

지금까지 찾은 솔루션이지만 내가 원하는 것은 아닙니다.

  • file_B명령 에서 :read file_A* file_A * 전체를 file_B에 추가합니다. 너무 많이
  • vim 안에 복사 & 붙여 넣기가 있습니다. file_A
  • file_A 내부:10,25w! file_B 에서 주어진 줄 범위를 '에 보내기'합니다 file_B.
    이것은 복사 및 붙여 넣기에 매우 가깝습니다.
  • 하나는 vim에서 여러 창을 열 수
    있지만 8 인치 화면에서 작업 할 때 여러 창으로 방향을 어렵게 만듭니다.

편안한 솔루션을 찾을 수 없었기 때문에 내가 지금까지 찾은 방법이나 일반적인 방법을 잘못 이해했는지 또는 표준 방법으로 사용되는지 궁금합니다.


이 참조 SO 질문을 베른하르트의 대답은 너무 저기 그 질문에 대한 대답을 허용했다 @!
slm

@slm 나는이 대답을 알고 있었지만 찾은 솔루션 목록에 넣지 않았으므로 힌트를 주셔서 감사합니다. 나는 아직도 내장 된 것을 찾고있다 vim. 그러나 이것은 도달 할 수없는 것 같습니다. 그리고 나는 이것이 외부 명령을 통해서만 달성 할 수 있는지 정말로 궁금합니다. vim지금 가지고있는 한 , 여기까지 거의 제한이 없었기 때문 입니다.
erch

@ cellar.dweller 만약 당신이 정말로 더 쉬운 것을 원한다면, 그것으로부터 어떤 종류의 기능을 만들 수 있습니다.
Bernhard

답변:


11

내가 생각해 낼 수있는 최고의 솔루션은 외부 전화를 걸고 sed결합하는 것입니다.:read !

:r !sed -n -e '10,25p' fileB

여기서 작동하지 않지만 왜? 먼저 도와 주셔서 감사합니다. 내가 얻는 것은 vim이 명령을 반복하려고하는 것처럼 'E34 : 이전 명령이 없음' 입니다. 내가 아는 한, 단계별로 : vim의 :r줄임말입니다 read. 나는 sed그것을 사용하는 방법에 대해 모른다. 물론, 나는 fileB실제 파일 로 대체 했다 :)
erch

@ cellar.dweller 내 답변이 누군가에 의해 업데이트되었으므로 해당 코드에서 동일한 오류가 발생했습니다. 나는 그것을 다시 굴렸다. 이것이 당신을 위해 작동하는지 확인하십시오.
Bernhard

@Stephane 답변을 짧게 작성하는 것이 좋지만 귀하의 제안은 효과가 없었습니다.
Bernhard

이제 작동합니다! 약간의 myslef를 추가하려면 다음과 같이 시작 :10r하십시오. 지금은 매력처럼 작동합니다. 큰. 고마워요!
erch

2
어머 미안합니다. vim의 확장을 잊어 버렸습니다!. 이어야했다 :r!sed 10,25\!d. -e또는 따옴표 가 필요하지 않으므로 :r!sed -n 10,25p짧게 쓸 수도 있습니다. :r sed '10,$\!d;25q'전체 파일을 읽지 않도록합니다.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.