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
(명령 모드에서) 두 줄을 함께 섞을 수 있습니다 .
또는 %d
Ex 모드에서 명령 행 예 : vim +%d foo.bar
.
답변
나는 게으른 친구이고 단순하게 유지하고 싶습니다. ggdG
5 번의 키 스트로크Shift
gg
파일의 첫 번째 줄로 가고 d
, d
elete 동사 의 시작이며 G
파일의 맨 아래로 이동하는 움직임입니다. 사실, 그것은 파일의 시작 부분으로 가서 타일이 끝날 때까지 모든 것을 삭제합니다.
답변
파일의 시작 부분으로 이동하여를 누릅니다 dG.
답변
나는 항상 사용 ggVG
gg
현재 편집 파일의 시작으로 이동V
(대문자 v)는 현재 줄을 선택합니다. 이 경우 현재 편집 파일의 첫 줄G
(대문자 g)는 파일의 끝으로 이동합니다. 이 경우 첫 번째 줄G
을 선택 했으므로이 파일에서 전체 텍스트를 선택합니다.
그럼 당신은 단순히 눌러 d
또는 x
모든 줄을 삭제합니다.