vim:在vim-gnome中使用ctrl-Q进行可视块模式

时间:2014-02-16 01:40:33

标签: vim

我在windows和linux上使用vim。在linux上我想将ctrl-Q设置为可视块选择,但仍然保持行为mswin,将ctrl-v设置为粘贴。

如何保持mswin的行为并使用ctrl-Q进行可视阻止模式?

编辑:我虽然mswin也会将ctrl-Q映射到visual block模式,但是在vim-gnome中ctrl-Q什么都不做

2 个答案:

答案 0 :(得分:10)

首先,我强烈建议你忘记windows vim快捷方式,如果你在Linux机器上工作。例如:ctrl-v,ctrl-q,ctrl-c ......

你必须认为这不是你问题的答案。现在我发布了“答案”。

要使ctrl-q在Linux机器上工作为ctrl-v (block selection),您必须告诉您,您使用 gvim vim in terminal

GVIM

如果是 gvim ,则更容易,只需创建一个映射,例如:

nnoremap <c-q> <c-v>

Terminal Vim

如果您想在终端vim中使<c-q>正常工作,您需要了解默认<C-q>在您的终端设置中有特殊含义。

在您的终端中,按<c-q>会发送stty start信号。当您首次stop终端输出滚动(ctrl-s),然后您想要恢复时,这一点很重要。也就是说,在终端vim中,如果按下C-q,它将首先被终端捕获。您当然可以通过禁用stty start定义来更改该规则。像:

stty start undef

如果你想将它作为默认值,你可以将它添加到你的.bashrc文件中(我假设你使用的是bash)。

执行此行后,您可以在vim中创建相同的映射nnoremap <c-q> <c-v>,并在正常模式下按<c-q>,vim将进入逐块选择模式。

毕竟,再次,如果您使用Linux机箱,我建议您忘记Windows映射。

答案 1 :(得分:1)

如果您不想更改终端设置(stty start undef以允许使用肯特答案中提到的ctrl q),则可以使用ctrl v对于粘贴,您只能在视觉和插入模式下进行ctrl v粘贴,并使其在正常模式下进行阻止选择:

" Paste from clipboard when in insert mode.
imap <C-V> <ESC>"+gpa
" Paste from clipboard when in visual mode. (Replace whatever is selected in visual mode.)
vmap <C-V> "+gp

您也可以从可视模式复制到剪贴板:

" Copy selection to clipboard when in visual mode.
vmap <C-C> "+y