[vi] vi에서 여러 줄을 어떻게 삭제할 수 있습니까?

나는 다음을 따르려고 노력했다 :

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

그러나

5dd

준다

E492 : 편집기 명령이 아님 : 5dd

그런 다음 시도했습니다.

5d

한 줄만 삭제합니다. 여러 줄을 삭제하려면 어떻게해야합니까?



답변

명령 모드 (일명 “Ex 모드”)에서 명령을 입력하는 것처럼 들립니다. 그 맥락에서 :5d5 번 줄을 제거 할 것입니다. 내용은 5dd즉, 커서에서 시작하여 다섯 개 결과의 줄을 제거 – – 의도 한대로 작업을 일반 모드에서 입력으로 명령을 접두사하지 않습니다 :.


답변

나는 이것이 더 쉽다고 생각한다

  1. VISUAL 모드로 이동 Shift+v
  2. 라인 선택
  3. d 지우는 것

/superuser/170795/how-can-i-select-and-delete-lines-of-text-in-vi


답변

줄 번호를 알고 있으면 여러 (범위) 줄을 삭제할 수 있습니다.

:[start_line_no],[end_line_no]d

참고 : d는 삭제를 나타냅니다.

여기서
start_line_no는 삭제할 시작 줄 번호이고 end_line_no는 삭제할 끝 줄 번호입니다. 시작과 끝을 포함하여 시작과 끝 사이의 줄이 삭제됩니다.

예 :

:45,101d

45와 101을 포함하여 45와 101 사이의 행이 삭제됩니다.


답변

일반 모드에서 사용하기 위해 나열된 명령 ( :명령 모드의 접두사 ).

Vim에서 테스트되었습니다.

라인 금액별 :

  • num- 현재 커서 위치에서 시작 카운트를 시작하는 numdd을 삭제합니다 (예 : 현재 줄과 그 아래 4 줄 삭제 => 현재 줄과 그 아래에있는 ( num-1 ) 줄 삭제5dd )
  • NUMdk – 삭제 NUM의 전류 선 및 전류 선 자체에서 라인을 (예를 들면 3dk현재의 라인과 상기 3 개 행을 삭제한다 => 현재 라인 삭제 NUM 그 위에 선 )

줄 번호로 :

  • dNUM은G – 라인 삭제됩니다 현재 줄에서을 (포함) UP 라인 번호 NUM (포함) (커서가 줄에 현재있는 경우 예를 들어 5 d2G삭제됩니다 라인 2-5 포함)
  • dNUM은gg – 행을 삭제합니다 현재 라인에서 (포함) DOWN 라인 번호에 NUM (포함) (커서가 줄에 현재있는 경우 예를 들어 2 d6gg2-6 행을 삭제 포함합니다)
  • ( 유일한 명령 모드 ) :NUM1의 ,NUM2는d – 라인을 삭제합니다 줄 번호 NUM1 (포함) DOWN 라인 번호에 NUM2 (포함)를 . 참고 : num1num2 보다 크면 vim이Backwards range given, OK to swap (y/n)?

답변

비 시각적 모드를 선호하고 줄 번호를 인정한다면 또 다른 간단한 방법을 제안하고 싶습니다.

45 행에서 101 행까지의 텍스트를 삭제하고 싶습니다.

내 방법은 명령 모드에서 아래 명령을 입력하는 것이 좋습니다.

45Gd101G

읽습니다.

45 행 ( 45G)으로 이동 한 다음 d현재 행에서 101 행 ( )까지 텍스트 ( )를 삭제합니다 101G.

에 있습니다 vim당신이 사용할 수있는 gg대신에 G.

@Bonnie Varghese의 대답과 비교하십시오.

:45,101d[enter]

그의 대답에서 위의 명령은를 포함하여 9 번 입력 enter해야하며 내 대답에는 8-10 번 입력해야합니다. 따라서 내 방법의 속도는 비슷합니다.

개인적으로, 나는 나 자신이 선호 45Gd101G이상 :45,101d이 경우가에서 VI의 명령 구문에 스틱처럼 때문에 :

+---------+----------+--------------------+
| syntax  | <motion> | <operator><motion> |
+---------+----------+--------------------+
| command |   45G    |        d101G       |
+---------+----------+--------------------+


답변

d5d 5 줄 “자르기”

나는 보통 다음과 같이 중간에 숫자를 던집니다.

d7l = 7 글자 삭제


답변

Esc키를 눌러 편집 모드가 아닌지 확인하십시오. 삭제할 첫 번째 줄에 커서를 놓습니다. 를 입력하십시오 :5dd. 현재 줄과 다음 네 줄을 삭제해야합니다.

또는 줄 번호 매기기가 켜져있는 경우 …

Esc키를 눌러 편집 모드가 아닌지 확인하십시오. :#,#d‘#’은 삭제할 시작 및 끝 줄 번호를 나타내는 곳에 입력 합니다.