[vim] vim-줄을 세지 않고 큰 텍스트 블록을 삭제하는 방법?

vim에서는 종종 큰 텍스트 블록을 삭제하거나 복사합니다. 예를 들어 텍스트 줄을 세어 50dd50 줄을 삭제할 수 있습니다.

그러나 삭제할 줄 수를 알지 않고도이 큰 텍스트 블록을 어떻게 삭제합니까?



답변

저는 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