1

我需要C-x在 Vim 中重新映射以在某些 Windows 编辑器中表现得像:

  • 在可视模式下,它应该剪切选定的文本。
  • 在正常模式下,它应该剪切当前行,前提是它不是空白的。
  • 应该删除一个空白行并将其放入黑洞注册表中。
4

1 回答 1

2
" Source distribution script in $VIMRUNTIME directory
:runtime mswin.vim

if has('clipboard')
    nmap <silent> <C-X> :call CutNonEmptyLineToClipboard()<CR>
    " If the current line is non-empty cut it to the clipboard.
    " Else do nothing.
    function! CutNonEmptyLineToClipboard()
        if strlen(getline('.')) != 0
            normal 0"*D
        endif
    endfunction
endif

更新版本如下。不得不谷歌“黑洞寄存器”,我不知道。(谢谢!)我还放了一个不同的空行匹配器。选择最适合你的版本。

if has('clipboard')
    nmap <silent> <C-X> :call CutNonEmptyLineToClipboard()<CR>
    " If the current line is non-empty cut it out into the clipboard.
    " Else delete it into the black hole register (named _).
    function! CutNonEmptyLineToClipboard()
        " Test if the current line is non-empty
"       if strlen(getline('.')) != 0
        if match(getline('.'), '^\s*$') == -1
            normal 0"*D
        else
            normal "_dd
        endif
    endfunction
endif
于 2012-04-14T15:06:21.737 回答