[vim] Vim : 두 번째 행마다 삭제하는 방법?
Vim에서 수행하는 방법 :
전에:
aaa
bbb
ccc
ddd
eee
fff
후:
aaa
ccc
eee
답변
이를 위해 매크로를 사용할 수 있습니다. 다음을 수행하십시오.
- 명령 모드에서 시작하십시오.
- 를 눌러 파일의 시작 부분으로 이동합니다
gg
. - 를 누릅니다
qq
. - 아래쪽 화살표를 클릭하고
dd
뒤를 누릅니다 . - 를 누릅니다
q
. - 프레스
10000@q
추신 : 명령 모드로 이동하려면 Escape를 몇 번 누르십시오.
답변
작업을 수행하는 우아하고 효율적인 방법은 :+delete
명령을 사용하여 모든 줄에서 현재 줄 다음 줄을 제거하는 명령 을 호출하는 것입니다 :global
.
:g/^/+d
답변
주어진 일반 모드 명령을 사용 :normal
하거나 :norm
실행할 수 있습니다 . 출처.
:%norm jdd
답변
:map ^o ddj^o
^o
여기서 ^는 CTRL을 의미합니다. 두 줄마다 한 줄을 삭제하는 재귀 매크로입니다. 첫 번째 줄을 잘 선택하면 완료됩니다.
답변
에서 VIM 메일 아카이브 :
:let i=1 | while i <= line('$') | if (i % 2) | exe i . "delete" | endif | let i += 1 | endwhile
(vim 명령 줄에서 한 줄에 입력하려면 1,3,5,7, … 행을 삭제합니다.)
답변
쉘 명령을 통해 항상 파이프 할 수 있습니다. 즉, 원하는 스크립팅 언어를 사용할 수 있습니다.
:%!perl -nle 'print if $. % 2'
(또는 원하는 줄에 따라 “if”대신 “unless”사용)
답변
:%!awk -- '++c\%2'
대안으로
:%!awk -- 'c++\%2'
제거하려는 절반에 따라 다릅니다.