vi를 사용하여 파일의 모든 줄을 어떻게 삭제합니까? 어떻게 삭제합니까? 현재 나는

vi를 사용하여 파일의 모든 줄을 어떻게 삭제합니까?

현재 나는 파일의 모든 줄을 제거하기 위해 다음과 같은 것을 사용합니다.

echo > test.txt

vi?를 사용하여 모든 줄을 어떻게 삭제할 수 있습니까?

참고 :
사용 dd은 좋은 옵션이 아닙니다. 여러 줄이있을 수 있습니다.



답변

에서 vi할 일

:1,$d

모든 줄을 삭제합니다.

:명령 이 도입되고 커서가 맨 아래로 이동합니다.
1,$다음 명령 (어떤 라인의 표시이다 d)에서 작동한다. 이 경우 1 행에서 마지막 행까지의 범위 (로 표시 $되므로 문서의 행 수를 알 필요가 없습니다).
마지막 d은 표시된 줄을 삭제합니다.

짧은 형식 ( :%d)이 있지만 사용하지 않는 것이 좋습니다. (가) :1,$d더 쉽게 할 수있다 “적응”예하는 :4,$-2d나머지 부분을 삭제, 첫 번째 3 개 마지막 두 줄을 떠나.


답변

vi에서는

:%d

어디

  • : vi에게 명령 모드로 이동하도록 지시합니다.
  • % 모든 라인을 의미
  • d : 삭제

명령 행에서

> test.txt

또한 할 것입니다.

dd의 문제점은 무엇입니까?

dd if=/dev/null of=test.txt

어디

  • /dev/null 특수한 0 바이트 파일입니다
  • if 입력 파일입니다
  • of 출력 파일입니다

답변

POSIX 호환 쉘에서 작동해야합니다.

> test.txt

vi로 정말로하고 싶다면 다음을 수행하십시오.

  • 1G (첫 줄로 이동)
  • dG (마지막 줄로 삭제)

답변

커서가 첫 번째 줄에 있으면 ( gg또는 입력하지 않은 경우 : 또는 1G),을 사용하면 dG됩니다. 현재 행에서 파일 끝까지 모든 행을 삭제합니다. 따라서 파일에서 모든 줄을 삭제하려면 ggdG(명령 모드에서) 두 줄을 함께 섞을 수 있습니다 .

또는 %dEx 모드에서 명령 행 예 : vim +%d foo.bar.

관련 : VIM에서 현재 줄에서 파일 끝까지 모든 텍스트를 어떻게 삭제합니까?


답변

나는 게으른 친구이고 단순하게 유지하고 싶습니다. ggdG5 번의 키 스트로크Shift

gg파일의 첫 번째 줄로 가고 d, delete 동사 의 시작이며 G파일의 맨 아래로 이동하는 움직임입니다. 사실, 그것은 파일의 시작 부분으로 가서 타일이 끝날 때까지 모든 것을 삭제합니다.


답변

파일의 시작 부분으로 이동하여를 누릅니다 dG.


답변

나는 항상 사용 ggVG

  • gg 현재 편집 파일의 시작으로 이동
  • V(대문자 v)는 현재 줄을 선택합니다. 이 경우 현재 편집 파일의 첫 줄
  • G(대문자 g)는 파일의 끝으로 이동합니다. 이 경우 첫 번째 줄 G을 선택 했으므로이 파일에서 전체 텍스트를 선택합니다.

그럼 당신은 단순히 눌러 d또는 x모든 줄을 삭제합니다.