Vim 在视觉块模式下不会删除底层行

Vim 在视觉块模式下不会删除底层行

在 vim 中,按Ctrl+V您可以进入视觉块模式。当我通过移动来选择多行时h、j、k 和 l,然后使用删除键d或D, 这文本被删除,但下面的线条仍保留在那里。

这意味着虽然文本消失了,但周围的代码仍然间隔很大。

有什么办法可以删除线条+文字吗?

答案1

如果你想选择线使用逐行视觉模式 ( V)。如果你想选择人物使用字符视觉模式(v)。如果要选择矩形块,请使用块视觉模式 ( Ctrl-V)。

删除可视矩形块才不是删除行。这是预期的行为。如果您想以可视方式选择行并删除它们,请使用逐行可视模式 ( ),使用和(或向下箭头和向上箭头)V选择行,然后按将其删除。jkd

答案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

相关内容