首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vim中映射<c-w>为"<c-w>w“

在Vim中映射<c-w>为"<c-w>w“
EN

Stack Overflow用户
提问于 2014-12-11 18:02:50
回答 1查看 1.7K关注 0票数 0

我很难激活以下映射:

代码语言:javascript
复制
  nnoremap <buffer> <C-K> <c-w>w
  nnoremap <buffer> <C-S-K> <c-w>W

在其中,我希望“在正常模式下按Ctrl+K”,以顺时针的方式将我发送到下一个缓冲区(相同屏幕)。维姆的<c-w>W会朝另一个方向走。我想把这个动作映射成Ctrl+Shift+w

知道为什么映射失败了吗?我发现只有LaTe-Tite.vim有<c-w>的映射,而没有映射任何<c-s-w>。插件映射仅为缓冲区。

谢谢你的意见。

万事如意,

-Linfeng

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 08:13:43

使用<buffer>关键字,您的映射只应用于当前缓冲区。因此,当您在~/.vimrc中使用它们时,它们是无效的,如果键入它们,则需要在多个窗口拆分中看到相同的当前缓冲区。我觉得这不是你想要的。相反,将它们定义为全局映射:

代码语言:javascript
复制
nnoremap <C-K> <c-w>w
nnoremap <C-J> <c-w>W

编辑:我已经用<C-J>代替了<C-J>,因为很不幸,Vim中通常没有移位的控制序列。

它们仍然可以被一些使用nnoremap <buffer> <C-K>的文件类型插件覆盖。

替代方案

我更喜欢以下一组定向映射。它们提供了更高的精确度,而代价是浪费更多的密钥:

代码语言:javascript
复制
nnoremap <C-j> <c-w>j
nnoremap <C-k> <c-w>k
nnoremap <C-h> <c-w>h
nnoremap <C-l> <c-w>l
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27429450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档