[vim] vim-줄을 세지 않고 큰 텍스트 블록을 삭제하는 방법?
vim에서는 종종 큰 텍스트 블록을 삭제하거나 복사합니다. 예를 들어 텍스트 줄을 세어 50dd
50 줄을 삭제할 수 있습니다.
그러나 삭제할 줄 수를 알지 않고도이 큰 텍스트 블록을 어떻게 삭제합니까?
답변
저는 vim 전문가는 아니지만이 상황에서 사용하는 것은 “시각 모드”입니다. 명령 모드에서 V
(capital)을 입력하십시오 . 그런 다음 위 / 아래로 이동하여 삭제하려는 블록을 강조 표시합니다 (모든 일반적인 이동 명령이 작동 함). 그런 다음 x
또는로 제거하십시오 d
.
답변
시작 줄로 이동하여 입력하십시오 ma( “a”표시). 그런 다음 마지막 줄로 이동하여 d'a“a”를 표시하려면 삭제 하십시오 .
현재에서 표시된 행까지의 모든 행이 삭제됩니다 (포함). 또한 환경이 후자에게 축복을받지 않을 가능성이 vi
있을 때 와 호환됩니다 vim
.
답변
당신은 (어떤 명령도 삭제 옵션을 사용할 수 있습니다) 또한 비주얼 모드를 사용할 수 있습니다
vip vap, 단락을 선택 v2ap두 단락의 선택
dap, 작품 d2ap도. [
]
같은 블록 내에서 삭제할 수 있습니다da[
참고로 : 객체 유형. vim 문서에서 : 섹션 4. http://vimdoc.sourceforge.net/htmldoc/visual.html
4. Operating on the Visual area *visual-operators*
...
The objects that can be used are:
aw a word (with white space)
iw inner word
aW a WORD (with white space)
iW inner WORD
as a sentence (with white space)
is inner sentence
ap a paragraph (with white space)
ip inner paragraph
ab a () block (with parenthesis)
ib inner () block
aB a {} block (with braces)
iB inner {} block
a< a <> block (with <>)
i< inner <> block
a[ a [] block (with [])
i[ inner [] block
답변
여기에는 더 나은 답변이 많이 있지만 완전성을 위해 위에서 언급 한 위대한 답변 중 일부를 읽기 전에 사용했던 방법을 언급 할 것입니다.
24-39 행에서 삭제한다고 가정하십시오. ex 명령을 사용할 수 있습니다
:24,39d
당신은 또한 사용하여 라인을 k 수 있습니다
:24,39y
24-39 줄 이상을 찾아서 바꾸십시오.
:24,39s/find/replace/g
답변
당신이를 통해 행 번호를 설정 한 경우 set number
당신 간단하게 할 수 있습니다 dNNG
현재 위치에서 NN을 줄을 삭제한다. 따라서 삭제하려는 줄의 시작으로 이동하고 삭제하려는 d50G
마지막 줄이라고 가정하면됩니다.
답변
그것은 큰 블록 이 무엇인지에 달려 있습니다. 어쩌면 당신은 단락을 삭제하는 것을 의미 dip할 것입니다.
답변
몇 가지 가능성이 있으며, 가장 좋은 것은 작업하는 텍스트에 따라 다릅니다.
두 가지 가능성이 떠 오릅니다.
- 시각 모드 (
V
,,S-V
…)로 전환 하고 커서를 움직여 텍스트를 선택한 후d
- 다음을 사용하여 전체 단락을 삭제하십시오.
dap