[vim] vi에서 한 파일의 내용을 다른 파일로 복사하여 붙여 넣기

두 개의 파일로 작업하고 있는데 한 파일에서 몇 줄을 복사하여 다른 파일에 붙여 넣어야합니다. 동일한 파일에서 복사 (yy) 및 붙여 넣기 (p) 방법을 알고 있습니다. 그러나 다른 파일에서는 작동하지 않습니다. 이것은 어떻게 이루어 집니까?

또한 잘라 붙여 넣기 방법이 있습니까? 인터넷 검색을 시도했지만 대부분의 리소스는 복사 붙여 넣기에 대해서만 이야기합니다.



답변

텍스트를 자르거나 구르는 방법을 이미 알고 있으므로 다른 파일에 다시 붙여 넣을 때 몇 가지 아이디어가 있습니다.

  • 원하는 텍스트를 잡아 당겨 첫 번째 파일을 편집하십시오. 그런 다음 vi ( :e /path/to/other/file) 내에서 두 번째 파일을 열고 붙여 넣습니다.
  • 사용하여 그들 사이에 분할 창을 탐색 함께 두 파일을 열고 Ctrl+ w, Up/ Down중 하나에 의해를 :

    • vi -o /path/to/file1 /path/to/file2
    • 첫 번째 파일에서 Ctrl+ w,s

답변

Windows에서 Vim을 사용하는 경우 다음을 사용하여 클립 보드 (MS 복사 / 붙여 넣기)에 액세스 할 수 있습니다.

"*dd -줄을 자르십시오

"*yy -한 줄 복사 (또는 3 줄을 복사하려면 3yy)

"*p -커서 다음 줄에 줄 붙여 넣기

"*P -커서 앞에 줄에 줄 붙여 넣기

별도의 Vim 창 사이 또는 Vim과 PC 응용 프로그램 ( 메모장 , Microsoft Word 등) 사이에 붙여 넣을 수 있습니다 .


답변

d같은 dd잘라내 기를 사용하십시오 .

다른 파일에 여러 줄을 쓰려면 다음을 사용할 수 있습니다.

:<n>,<m> w filename

위치 <n><m>범위는 행 범위를 지정하는 숫자 (또는 기호)입니다.

데스크탑 클립 보드를 사용하려면 +g명령을 살펴보십시오 .


답변

다른 파일을 열고을 입력 할 수 있습니다 :r file_to_be_copied_from. 또는 버퍼링 할 수 있습니다. 또는 첫 번째 파일로 이동하여 복사하려는 줄로 "qY이동하여을 입력 한 다음 붙여 넣으려는 파일로 이동하여을 입력하십시오 "qP.

"buffer_name, 버퍼에 복사합니다. Yk하고 P넣습니다. 희망이 도움이됩니다!


답변

이를 수행하는 한 가지 방법이 있습니다.

  • Vim을 시작하고 작업중인 파일 인 file1을 엽니 다.
  • :e file2는 줄을 복사하려는 파일 인 file2를 불러옵니다.
  • 복사하려는 줄을 찾으십시오. 세 줄이면3yy
  • :b1 이것은 버퍼 1로 전환되며, 여기서 file1은
  • 당신이 잡아 당긴 선을 어디에 삽입하고 싶은지 알아 내고 p

두 파일을 모두 볼 수 있습니다. 예를 들어 Ctrl+로 화면을 분할하십시오 w s.

절단에 관해서는, d절단 된 재료를 절단 및 완충 버퍼에 놓는다. dd줄을 “잘라낼 것”입니다.


답변

이것들은 모두 좋은 제안이지만 다른 파일에서 텍스트의 위치를 ​​알고 있다면 sed를 쉽게 사용하십시오. :r! sed -n '1,10 p' < input_file.txt커서의 현재 위치에서 이미 열려있는 파일에 10 줄이 삽입됩니다.


답변

파일을 편집하는 동안 시작과 끝에서 사용할 위치를 표시하십시오.

maa마크를 설정

mbb마크를 설정

그런 다음 다른 파일로 복사하려면 다음 w명령을 사용하십시오 .

:'a,'bw /name/of/output/file.txt