답변:
저는 vim 전문가는 아니지만이 상황에서 사용하는 것은 "시각 모드"입니다. 명령 모드에서 V(capital)을 입력하십시오 . 그런 다음 위 / 아래로 이동하여 삭제하려는 블록을 강조 표시합니다 (모든 일반적인 이동 명령이 작동 함). 그런 다음 x또는로 제거하십시오 d.
.vimrc이 작동하고 있습니까?
Shift-를 사용하여 비주얼 라인 모드로 들어갈 수 있다는 것을 몰랐다 v. ... 나는 CTRL키 를 사용하려고했다 . 그래서 이것은 작동하며 아마도 가장 편리한 방법 일 것입니다.
CTRL- v)과 비주얼 블록 ( Shift- v)의 두 가지 비주얼 모드가 있음을 명확히 할 수 있습니다 .
시작 줄로 이동하여 입력하십시오 ma( "a"표시). 그런 다음 마지막 줄로 이동하여 d'a"a"를 표시하려면 삭제 하십시오 .
현재에서 표시된 행까지의 모든 행이 삭제됩니다 (포함). 또한 환경이 후자에게 축복을받지 않을 가능성이 vi있을 때 와 호환됩니다 vim.
/var/mail/username에서 서버의 메일 을 대량 으로 삭제 하고 마지막 메일을 그대로 유지하는 데 사용합니다. 그때 내가 예를 들어 입력, 표시를 할 50000다음에 gg그때 사이에있는 모든 행을 삭제, 라인 50.000로 이동합니다. 매력처럼 작동합니다!
vim기가 바이트 파일을 편집하기위한 도구 로 사용하지 않을 것입니다 -나는 텍스트 처리 도구 awk와 그 형제들과 같은 텍스트 처리 도구를 선택하는 경향이 있습니다 :-)
당신은 (어떤 명령도 삭제 옵션을 사용할 수 있습니다) 또한 비주얼 모드를 사용할 수 있습니다
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
dap"문단 삭제"로 기억하기 매우 쉽습니다
여기에는 더 나은 답변이 많이 있지만 완전성을 위해 위에서 언급 한 위대한 답변 중 일부를 읽기 전에 사용했던 방법을 언급 할 것입니다.
24-39 행에서 삭제한다고 가정하십시오. ex 명령을 사용할 수 있습니다
:24,39d
당신은 또한 사용하여 라인을 k 수 있습니다
:24,39y
24-39 줄 이상을 찾아서 바꾸십시오.
:24,39s/find/replace/g
몇 가지 가능성이 있으며, 가장 좋은 것은 작업하는 텍스트에 따라 다릅니다.
두 가지 가능성이 떠 오릅니다.
V,, S-V...)로 전환 하고 커서를 움직여 텍스트를 선택한 후ddap전체 블록이 화면에 표시되면 상대 숫자 설정을 사용할 수 있습니다. : help relativenumber를 참조하십시오. 7.3에서 사용 가능
줄을 세는 것은 너무 지루하지만 '단락'을 세는 것은 그렇게 나쁘지 않습니다. '{'및 '}'은 커서를 커서 전후의 첫 번째 빈 줄로 각각 이동합니다. 커서 이동 작업은 삭제와 결합 할 수 있으며 다른 몇 가지 답변도 비슷한 접근 방식 (행은 dd, 문서 끝은 dG 등)을 사용했습니다.
예를 들면 다음과 같습니다.
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
Lorem *ipsum(void) {
return dolor(sit, amet);
}
커서가 주석 블록 위에서 시작하면 'd}'는 주석 블록을 삭제하고 'd2}'는 주석 블록과 코드 블록을 모두 삭제합니다. 커서가 코드 블록 아래에서 시작되면 'd {'는 코드를 삭제하고 'd2 {'는 둘 다 삭제합니다. 물론 커서를 먼저 이동하여 하나의 블록을 건너 뛸 수 있습니다 : '{d {'또는 '} d}'.
공백과 일치하거나 단락을 한눈에 확인할 수 있으면 효과가 있습니다. Vim 도움말 파일에는 더 많은 커서 트릭이 있습니다.
커서가 블록의 시작 부분에 있다고 가정합니다.
V/^$<CR>d (where <CR> is the enter/return key)
V/^$<CR>d보다 강력한 솔루션 :
:set nowrapscan
:nnoremap D V/^\s*$\\|\%$<CR>d
:set nowrapscanD키를 다음 명령으로 다시 맵핑하십시오 .:nnoremap DV/^\s*$\\|\%$<CR>d
51dd. 또는 모션 명령을 사용하십시오 –50d<down arrow>