program story

복사 할 때 Vim에서 줄 번호를 지우는 방법은 무엇입니까?

inputbox 2020. 12. 10. 19:57
반응형

복사 할 때 Vim에서 줄 번호를 지우는 방법은 무엇입니까?


한 파일의 한 부분에서 다른 부분으로 일부 코드를 vim의 다른 부분으로 복사합니다. 각 줄에 줄 번호가 있고 형식이 사라졌습니다. 올바른 형식을 원본으로 설정하는 방법은 무엇입니까?

이렇게 :

            40         root /opt/release/current/public;
 67             41         passenger_enabled on;
 68              42 

줄 번호가 있다면 Vim의 yank / put 작업을 사용하지 않는다고 확신합니다 (이 작업 은 편집 버퍼 측면에서 존재하지 않기 때문에 절대 줄 번호, foldcolumn, 아이콘 등을 복사하지 않습니다).

내 생각 엔 터미널 에뮬레이터에서 작업하고 마우스를 사용하여 클립 보드에 항목을 복사하면 화면의 '과도한'공간 (끝의 가상 공간, 줄 번호, 접기 마커 등 포함)을 선택할 수 있습니다.

운이 좋을 수도 있습니다.

:se mouse+=a

예상 한대로 마우스의 동작을 얻으려면 그렇지 않으면 V<movement>...y( '복사'에 해당하는 yfor yank)로 선택하십시오.

그런 다음 목적지 사용 p(커서에 놓기) 또는 P(커서 앞에 놓기)

도움이되었거나 더 많은 정보가 필요한지 알려주세요.


일반 모드에서 다음을 입력합니다. :se nonu

이것은 줄 번호를 제거하는 가장 쉬운 방법이며 줄 번호없이 텍스트를 복사 할 수 있습니다.


누군가가 더 빠른 방법을 원한다면 (어쨌든 Linux에서) vim에서 Ctrl 키를 누른 채 복사하려는 영역 위로 드래그하면 줄 번호를 피하고 원하는 부분을 선택할 수 있습니다.

단계 :

  1. Ctrl 및 영역 위로 드래그
  2. Ctrl 해제
  3. 복사 (키보드 단축키 또는 오른쪽 클릭)

이에 대한 영구적 인 해결책은 .vimrc홈 디렉토리에있는 파일 끝에 아래 코드를 추가하는 것 입니다.

se mouse+=a

이것을 추가하면 아래 이미지와 같이 줄 번호가 아닌 텍스트 만 선택할 수 있습니다.

여기에 이미지 설명 입력


.vimrc홈 디렉토리에 파일 이없는 경우 (이 문제가 발생했습니다) :scriptnamesvi 편집기에 명령 입력하면 .vimrc파일 위치가 표시 됩니다. 참고


이전에 입력 한 모든 솔루션은 매우 좋은 솔루션입니다. 그러나 때로는 원격 서버에서 vim을 사용하고 있으므로을 사용하여 클립 보드에 복사 할 수 없습니다 "+y. 종종 터미널은 복사 붙여 넣기 작업을 지원합니다.

vim을 사용하여 터미널 기능을 사용하여 텍스트를 복사 할 수있는 새 셸에 시각적 선택을 출력합니다.

:'<,'>w ! bash -c cat

그러면 출력을 쉽게 복사 할 수 있습니다.

vim에 붙여 넣는 것과 동일한 패턴 :

:r ! bash -c cat

그런 다음 Ctrl+를 사용하여 EOF를 붙여넣고 cat에게 보냅니다 d. 이 방법은 또한 붙여 넣은 텍스트를 다시 들여 쓰는 것을 방지합니다 (참고 :를 사용하여 자동 들여 쓰기를 비활성화 할 수 있음 :set pi!).


때로 F11로 설정되는 pastetoggle 옵션을 살펴보십시오.

대안으로 복사하려는 섹션을 임시 파일 ( ma, 끝줄로 이동 한 다음 사용 :'a,.w tempfile)에 기록한 다음 두 번째 파일로 읽어 올 수 있습니다.

추가 조사를 위해 자동 들여 쓰기 옵션을 살펴볼 수 있습니다.


Windows VIM GUI : 마우스로 원하는 텍스트를 강조 표시하는 동안 - :set nu를 누르고 있습니다. 이렇게하면 줄 번호가 버퍼에 들어갑니다.CtrlShift


Mac : Option + Command를 사용하여 원하는 영역을 선택하고 복사하여 다른 편집기에 붙여 넣을 수 있다는 것을 알았습니다.


아래 명령을 키에 매핑했습니다.
복사 된 줄 번호 주위의 공백을 제거합니다.
줄 텍스트와 뒤에있는 모든 빈 줄을 무시합니다.

:1,$s/^\s*[0-9]\+\s//\|1,$s/^\s*[0-9]\+\n/\r/<cr>

sed사용을 고려하여 pbcopy라인을 클립 보드에 복사하여 vim 외부의 다른 터미널이나 앱에 붙여 넣을 수 있습니다.

sed -n <line start #>,<line end #>p <file name> | pbcopy

참고 URL : https://stackoverflow.com/questions/5728259/how-to-clear-the-line-number-in-vim-when-copying

반응형