Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim:在vim gnome中使用ctrl-Q作为可视块模式_Vim - Fatal编程技术网

vim:在vim gnome中使用ctrl-Q作为可视块模式

vim:在vim gnome中使用ctrl-Q作为可视块模式,vim,Vim,我在windows和linux上使用vim。在linux上,我希望将ctrl-Q设置为VisualBlockSelection,但仍然保持将ctrl-v设置为粘贴的BehaveMSWIN 如何保持mswin的行为并对可视块模式使用ctrl-Q 编辑:我认为mswin也会将ctrl-Q映射到可视块模式,但在vim gnome中ctrl-Q什么都不做。首先,我强烈建议您在linux设备上工作时,不要使用windows vim快捷方式。例如:ctrl-v、ctrl-q、ctrl-c 你一定认为这不是你

我在windows和linux上使用vim。在linux上,我希望将ctrl-Q设置为VisualBlockSelection,但仍然保持将ctrl-v设置为粘贴的BehaveMSWIN

如何保持mswin的行为并对可视块模式使用ctrl-Q


编辑:我认为mswin也会将ctrl-Q映射到可视块模式,但在vim gnome中ctrl-Q什么都不做。首先,我强烈建议您在linux设备上工作时,不要使用windows vim快捷方式。例如:ctrl-v、ctrl-q、ctrl-c

你一定认为这不是你问题的答案。现在我发布“答案”

要使
ctrl-q
在linux机器上像
ctrl-v(块选择)
一样工作,您必须知道,您在终端中使用gvimvim

Gvim 如果是gvim,则更简单,只需创建一个映射,如:

nnoremap <c-q> <c-v>
如果希望将其作为默认值,可以将其添加到
.bashrc
文件中(我假设您使用的是bash)

执行此行后,您可以在vim中创建相同的映射
nnoremap
,在正常模式下按
,vim将进入分块选择模式


毕竟,如果您使用linux box,我建议您忘记windows映射

如果您不想更改终端设置(
stty start undef
允许使用
ctrl q
,如Kent的回答中所述)以便能够使用
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
在插入模式下从剪贴板粘贴。 imap“+gpa “在视觉模式下从剪贴板粘贴。(替换在视觉模式下选择的内容。) vmap“+gp 您还可以从可视模式复制到剪贴板:

" Copy selection to clipboard when in visual mode.
vmap <C-C> "+y
“在视觉模式下将所选内容复制到剪贴板。
vmap“+y

但是等等,我不明白的是,这只是将ctrl+v重新映射到ctrl+q。使用behave mswin时,ctrl+v是粘贴的,因此只需将ctrl+q从*寄存器粘贴,不是吗?我希望ctrl+v粘贴,ctrl+q输入visual select。在win和linux上工作时,我不能对每一个都有不同的映射,这会让我发疯。多年来,作为一名windows管理员,mswin感觉更自然。此外,我只使用gvim(在本例中为vim gnome)来简化事情。@user1028270如果你想
c-v
执行
p
(粘贴),您可以创建映射:
nnoremap p
使用我的答案中的映射(
->
),它可以执行您想要的操作。如果您有很好的理由在LinuxBox上使用WinKeyMap,那就好了。无论如何,对于我来说,很高兴听到windows管理员使用vim作为主编辑器。。我曾经编写过一个相对较长的批处理文件(400行),我是在linux vim中编写的:D
" Copy selection to clipboard when in visual mode.
vmap <C-C> "+y