在 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