vi 편집기에서 선택한 텍스트를 삭제하는 방법


116

PuTTY와 vi 편집기를 사용하고 있습니다. 마우스를 사용하여 5 개 라인을 선택하고 그 라인을 삭제하려면 어떻게해야합니까?

또한 Windows에서 Shift화살표를 누르고 이동하여 텍스트를 선택하는 것처럼 키보드를 사용하여 줄 을 선택하려면 어떻게해야합니까? vi에서 어떻게 할 수 있습니까?


1
인쇄 된 사람 목록이 있지만 선택한 텍스트를 삭제하는 방법을 찾을 수 없습니다

x 커서 오른쪽에있는 문자 삭제 X 커서 왼쪽에있는 문자 삭제 D 줄 끝까지 삭제 dd 현재 줄 삭제 : d lagmonster.org/docs/vi.html 에서 현재 줄 삭제 조금 도움이 되길 바랍니다
Mawg 모니카 복원 말한다

1
수퍼 유저에 대한 VIM 질문이 있으십니까? LOL!
Pascal Thivent

1
@Pascal : 흠, 네, 맞아요. 그건 그렇고 멋지게 형식화 된 답변입니다. 아, 그리고 그의 질문은 VIM이 아니라 VI에 관한 것이 었습니다. ;)
Marcel Korpel 2010-06-25

답변:


215

PuTTY와 vi 편집기를 사용하고 있습니다. 마우스를 사용하여 5 개 라인을 선택하고 그 라인을 삭제하려면 어떻게해야합니까?

마우스는 잊어 버리세요. 5 줄을 제거하려면 다음 중 하나를 수행하십시오.

  • 첫 번째 줄로 이동하여 입력하십시오 d5d( dd한 줄 d5d삭제, 5 줄 삭제) ~ 또는 ~
  • 입력 Shift-v입력 라인 방식 선택 모드를 다음 사용하여 아래로 커서를 이동 j(예, 사용 h, j, kl으로 이동하기 위해 왼쪽 , 아래로 , 위로 , 오른쪽으로 각각 그 훨씬 더 효율적 화살표를 사용하는 것보다 'S) 및 입력 d선택을 삭제합니다.

또한 Windows에서 Shift화살표를 누르고 이동하여 텍스트를 선택하는 것처럼 키보드를 사용하여 줄 을 선택하려면 어떻게해야합니까? vi에서 어떻게 할 수 있습니까?

앞서 말했듯 Shift-v이을 사용 하여 라인 별 선택 모드 v로 들어가 거나 문자 별 선택 모드 Ctrl-v로 들어가 거나 블록 별 선택 모드로 들어갑니다. 다음으로 이동 h, j, kl.

vimtutor매우 교훈적인 방법으로 Vim에 더 익숙해지기 위해 Vim Tutor (run ) 와 시간을 보내는 것이 좋습니다 .

또한보십시오


1
실제로 vim은 터미널에서 지원하는 경우 뛰어난 마우스 지원을 제공합니다. 예를 들어 gpm콘솔 에서 데몬을 사용 하거나 실행 중이 xterm거나 konsole그래픽 환경에서 vim에 알릴 수 있으며 set mouse=a(또는 .vimrc에 추가) 마우스를 선택, 분할 크기 조정 등에 사용할 수 있습니다.
Ben Voigt

@Ben 맞습니다, 저는 마우스를 전혀 사용하지 않지만 이것이 VIM이 (특정 상황에서) 그것을 처리 할 수 ​​없다는 것을 의미하지는 않습니다. 입력하는 동안 내 대답에서이 부정확 한 부분을 실제로 제거했습니다.
Pascal Thivent

또한 V가 대문자인지 아닌지 구분하기가 정말 어렵습니다. 라인 모드 선택을 위해 [Shift] + [V]를 사용하는 것이 좋습니다.
Ben Voigt

나는 동안이었다 알고 있지만, 사용하는 이유는 h, j, kl많은 화살표를 사용하는 것보다 더 효율적인가요? 화살표를 사용해도 아무런 문제가 없으며 최종 결과는 동일하게 보입니다. 자신의 배열이 훨씬 더 직관적 인 (적어도 나에게) 느낌 때문에 또한, 화살표는 첫째, 그 목적을 위해 설계되었습니다
프레 데 리코 Pantuzza

1
@FredericoPantuzza 그 시점에서 팔 움직임의 문제입니다. 목표는 항상 홈 행 키에 손가락을 유지하는 것입니다. 오른팔을 들고 화살표 키 위로 밀어서 사용하면 시간이 지남에 따라 추가됩니다.
AndrewF

59

vi 방식으로하십시오.

5 줄을 삭제하려면 다음을 누르십시오. 5dd(5 삭제)

선택 (실제로 클립 보드에 복사)하려면 다음을 입력합니다. 10yy

이해하기는 조금 어렵지만 원격 터미널을 사용할 때 배우면 매우 편리합니다.

일부 편집자의 학습 곡선에 유의하십시오.


(출처 : calver at unix.rulez.org )


31

줄 번호를 사용하여 삭제하려면 다음을 사용할 수 있습니다.

:startingline, last line d

예:

:7,20 d

이 예에서는 7 ~ 20 행을 삭제합니다.


지금까지이 팁에 대해 몰랐습니다. 매력처럼 작동합니다! 감사!
Tung

13

마우스로 강조 표시하면 터미널의 문자 만 강조 표시됩니다. VI는 실제로이 정보를 얻지 못하므로 다르게 강조 표시해야합니다.

'v'를 눌러 선택 모드로 들어가고 화살표 키를 사용하여 이동합니다. 삭제하려면 x를 누릅니다. 한 번에 줄을 선택하려면 Shift + v를 누릅니다. 블록을 선택하려면 ctrl + v를 시도하십시오. 예를 들어 코드 앞에 많은 주석 줄을 삽입하는 것이 좋습니다. :).

VI는 괜찮지 만 개선하는 데 시간이 걸렸습니다. 제 직장 동료 들이이 치트 시트를 추천했습니다 . 나는 무언가를 잊었을 때 그 이상한 순간을 위해 벽에 인쇄물을 보관합니다.

해피 해킹!


6

같은 터미널 사용하는 경우 퍼티를 , 일반적으로 마우스 클릭과 선택은 하지 원격 시스템으로 전송 . 따라서 vi는 방금 텍스트를 선택했다는 사실을 모릅니다. (이에 대한 예외가 있지만 일반적으로 마우스 동작은 전송되지 않습니다.)

vi에서 여러 줄 5dd을 삭제하려면 5 줄을 삭제 하는 것과 같은 방법 을 사용하십시오 .

당신이 사용하지 않는 경우 빔을 , 나는 것이 강하게 그렇게하는 것이 좋습니다. 시각적 선택을 사용 V하여 시각적 블록을 시작하고 커서를 다른 쪽 끝으로 이동하고을 눌러 d삭제 (또는 y복사 와 같은 다른 편집 명령 ) 할 수 있습니다.


1
@Justin L .: <kbd>a</kbd>.
Greg Hewgill 2010-06-25

1
감사! : D 어딘가에 숨겨진 것이 더 있습니까?
Justin L.

1
Putty는 마우스 명령을 전송할 수 있습니다. 첫 번째 문장이 구식 일 수 있습니다.
congusbongus

3

현재 줄 번호에서 파일의 모든 줄을 제거하려면을 사용 dG하면 (shift g)파일 끝을 의미하는 모든 줄이 삭제 됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.