![Vim은 시각적 블록 모드에서 기본 줄을 삭제하지 않습니다.](https://linux55.com/image/99505/Vim%EC%9D%80%20%EC%8B%9C%EA%B0%81%EC%A0%81%20%EB%B8%94%EB%A1%9D%20%EB%AA%A8%EB%93%9C%EC%97%90%EC%84%9C%20%EA%B8%B0%EB%B3%B8%20%EC%A4%84%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
vim에서 다음을 누르세요.Ctrl+V시각적 차단 모드로 들어갈 수 있습니다. 이동하여 여러 행을 선택할 때h, j, k 및 l을 누른 다음 삭제 키를 사용하세요.d 또는 D, 이것텍스트는 제거되지만 그 아래 줄은 그대로 남아 있습니다.
이는 텍스트가 사라지더라도 주변 코드의 간격이 여전히 넓다는 것을 의미합니다.
줄+텍스트를 제거하는 방법이 있나요?
답변1
당신이 선택하고 싶다면철사프로그레시브 비주얼 모드( V
)를 사용합니다. 당신이 선택하고 싶다면수치캐릭터 비주얼 모드( v
)를 사용하세요. 직사각형 블록을 선택하려면 블록 시각적 모드( Ctrl-V
)를 사용하세요.
보이는 직사각형 블록 삭제확실히행을 삭제합니다. 이는 예상된 동작입니다. 행을 시각적으로 선택하고 삭제하려면 행별 시각적 모드( )를 사용하고 및(또는 아래쪽 화살표 및 위쪽 화살표)를 사용하여 V
행을 선택한 다음 을 눌러 삭제합니다.j
k
d
답변2
자동 명령에서 이 기능을 사용하고 있으며 파일을 저장하기 전에 공백과 빈 줄을 제거합니다.
" Removes trailing whitespace and blank lines leaving 1 blank line between functions.
function! TrimWhitespace()
" skip these filetypes
if (&ft=='markdown' || &ft=='help')
return
endif
let l:save = winsaveview()
" remove whitespace
%s/\s\+$//e
" remove blank lines
%s/\(\s*\n\)\{3,}/\r\r/ge
call winrestview(l:save)
endfunction
command! TWs call TrimWhitespace()
" this autocmd is called when any of the following files is saved
" edit filetypes as needed.
au BufWritePre *.c,*.sh,*.h,*.vim,*.vimrc,*.txt,*.local,.*rc,.*profile :TWs