우분투를 사용하고 있는데 vi
에디터에서 100줄을 모두 삭제하려고 하는데, 명령어 하나로 이걸 하려고 면접 질문에 부딪혔습니다.
답변1
일반 모드에서 실행
100dd
dd
현재 행을 삭제합니다. 이 명령을 앞에 붙이면 100
100번 반복됩니다.
현재 줄부터 시작하여 파일의 줄이 100개 미만인 경우 구현 방법에 따라 vi
줄을 삭제하지 못하거나 모든 줄을 삭제합니다. 의 경우 aka 옵션이 켜져 있는지 여부 vim
에 따라 다릅니다 .cp
compatible
답변2
현재 줄(포함) 100줄 앞으로 삭제
dd(현재 행 삭제)를 100회 반복합니다.
100dd
현재 줄부터 처음 99줄까지 삭제
d99j
현재 줄(포함) 100줄 뒤로 삭제
d99k
행 번호로 특정 범위의 행 삭제
:1,100d
현재 행부터 시작하여 행 범위 삭제
:.,.+99d
기타 등등
답변3
만약에모두파일에서 행을 삭제하기 위해 이 vi 명령은 삭제 범위를 지정합니다.
:1,$d
1
첫 번째 줄은
$
마지막 줄을 의미합니다.
답변4
파일의 어느 위치에 있든 다음을 수행할 수 있습니다.ggdG
:%d
더 적은 수의 키 입력으로 더 나은 결과를 얻을 수 있습니다. 글쎄요, shift
키와 키를 세어보면 enter
실제로는 위보다 두 번 더 많은 키를 누르게 됩니다.
이런 식으로 하면 100dd
삭제됩니다에 따라현재 위치에서 100줄 떨어져 있으며 현재 줄 위치에 따라 파일에서 모든 줄을 삭제하지 못할 수도 있습니다.