将vim中的ctrl-`或<c-`>映射为<c-w>w

3

我试过

inoremap <c-`> <c-w>w 

我尝试过各种组合,但都没有效果。cntrl-`已经映射了吗?

我使用的是Lubuntu 64位16.04:lxterminal 我尝试使用cntrl-v cntrl-`查找字符,但没有显示。

顺便说一句:我正在尝试确保我可以在我的VSCode编辑器中完成相同的操作。

4个回答

4
在典型的终端中,control`是ASCII NUL(零),vim不会映射它。使用cat -v使结果可见,你可能会看到:
^@

这是一个单一字符...

对于一些通常会产生NUL的其他按键,例如controlspacecontrol@(真的!),你将得到相同的行为。


1
你无法将任何内容映射到Ctrl-Backtick,因为无论你怎么做,Vim都不会识别它。
请寻找其他的键位组合。

1
正如 @romainl 和 @Thomas Dickey 指出的那样,你不能在终端 vim 中做到这一点。 如果你想在 VSCode 中实现这个功能,只需将其添加到 keybindings.json 并将其添加到可编辑面板即可。
// Place your key bindings in this file to overwrite the defaults
[
  { "key": "ctrl+`", "command": "workbench.action.navigateEditorGroups" },
]

这将起作用,因为VSCode不会像您的终端一样存在解释ctrl`的问题。 此外,使用ctrl`可能不是一个好主意,因为它已经被用来切换集成终端。
⌃`    Toggle Integrated Terminal workbench.action.terminal.toggleTerminal

如何修改VSCode的按键绑定

cntrl-`已经映射了吗?

没有。即使一个键组合已被映射,你也可以在vim中覆盖它。

尝试使用cntrl-v cntrl-`查找字符,但什么也没有显示出来。

现在你知道为什么了。


{ "key": "ctrl+", "command": "workbench.action.terminal.focus"}, { "key": "ctrl+", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"},谢谢 - 实际上上述内容是我在VSCode中已经有的。这也是在VSCode上的默认设置。我只是试图在neovim方面进行匹配。 - user6273920
@quantt:根据你的问题,我理解你想在VSCode中完成这个任务。如果提供的信息对你有用,请点赞。 - sudo bangbang
实际上你误解了。我已经在VSCode上做了这个。所以,我想让neovim和VSCode一样。当然。也许我应该更清楚一些。无论如何,谢谢。 - user6273920

0

嗯,正如其他两个答案所指出的那样。我找不到快捷键组合,并且我也不认为我会找到;然而,当使用nyaoVim时,快捷键组合确实有效。所以,这只是终端的问题。 安装有点麻烦,但现在基本上一切都工作正常!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接