2009-04-28 5 views

답변

117

시각 중 하나를 라인에 저장하려는 텍스트를 선택하거나 시각 모드를 차단하고, 입력 한 내용의

:w new.txt 

,하지만 당신은 실제로 위의 정확히이 표시되지 않습니다. :을 누르면 명령 줄로 이동하여 자동으로 선택 정보로 채워집니다.
:'<,'> 

그냥

:'<,'>w new.txt 

얻을 수있는 나머지 (w new.txt)를 입력 계속 ... 그리고 Enter 키를 누릅니다 : 그것은 다음과 같이 보일 것입니다.

+10

줄 안의 선택 시작 및 끝 위치를 무시하고 전체 행만 기록하므로 예상되는 결과를 제공하지 않습니다. 그 어떤 해결책이라도? 그렇지 않으면 다시 주요 질문을 제출하는 것이 좋습니다. – dronus

+1

@ dronus - 당신이 무엇을 요구하는지 잘 모르겠습니다. OP가 질문 한 내용을 이해하는데 도움이됩니다. – Rook

+3

비선형 비주얼 모드로 선택하면,': w'는 선택된 범위에 접촉 된 전체 라인을 출력하지만, 라인의 시작 또는 끝의 정확한 범위는 출력하지 않습니다. 예를 들어 블록 선택 모드에서 좁은 열을 선택하거나 시각적 선택 모드에서 한 줄의 일부를 선택하면'y'가 줄의 올바른 부분을 복사 할지라도 전체 줄은': w '로 작성됩니다 . – dronus

4

아마도이 작업을 수행하는 데 더 쉬운 방법이 있지만 새 버퍼 (또는 탭)를 만든 다음 p과 붙여 넣기 만하면됩니다. :new으로 새 버퍼를 만들거나 :tabnew으로 새 탭을 만들 수 있습니다. :w filename을 사용하여 정상적으로 파일에 버퍼/탭을 쓸 수 있습니다.

+1

상단에있는 여분의 줄을 삭제하십시오! (빈 버퍼에 붙여 넣기는 상단에 여분의 줄을 만들거나 하단에'P'를 사용합니다.) –

16

블록이 선택되면 :'<,'>w other-file을 입력하면 other-file에 선택한 블록 만 씁니다. 시각 모드에서 :을 누르면 '<,'>을 명령 줄에 입력해야하므로 실제로는 :w other-file 만 입력하면됩니다.

+1

Vim은 항상 외부 명령에 대한 파이핑을 위해 전체 줄을 선택하므로 unix/cygwin 'cut'명령을 사용할 수 있습니다 선택에서 각 줄의 N에서 M까지의 직사각형을 선택하려면 : ':'<,'> w! cut -cN-M> new.txt'. 최고의 투표 응답과 독자가 그 질문을 이해하지 못하는 것 같아서 놀랐습니다. – mosh

2

의견에서 언급 한 @dronus와 마찬가지로 전체 줄을 복사하기 때문에 :w !pbcopy 제안이 올바르게 복사되지 않습니다. 한 줄에있는 URL 만 복사하려면 할 수 없습니다. 당신은 어떤이에 대한 자세한 내용을 읽어하려는 경우

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR> 

을 : 여기 당신은 CTRL-C를 공격하는 때마다 귀하의 .vimrc 파일에 추가 할 수있는 라인입니다, 당신의 정력에서 선택한 라인을 클립 보드에 복사됩니다 당신은 이것에 관해 읽을 수 있습니다. my blog

@rmeador가 제안한 것과 같은 구현입니다. @ songz의 솔루션과 유사

1

, 나는이 사용하는 것과 그것을 선호 "새로운"

vmap <C-c> y:new ~/.vimbuf<CR>VGp:x<CR>:!pbcopy < ~/.vimbuf<CR><CR> 
+0

pbcopy는 내 지식으로는 OSX에서만 제공됩니다. 리눅스와 다른 시스템에도 비슷한 프로그램이 있지만 이름이 다르며 다르게 작동합니다. –

+0

예, pbcopy 실행 파일 인 경우에만 작동합니다. 전혀 해가 없습니다. – chenkaie