注意:我使用的是Terminator 而不是终端。但是,由于所有其他映射都工作正常,为什么这些映射不起作用。
我已尝试在我的 vimrc 文件中使用这些映射,以便能够使用 Tab 导航。但它根本不起作用。
nnoremap <C-S-tab> :tabprevious<CR>
"nnoremap <C-tab> :tabnext<CR>
nnoremap <C-tab> :tabn<CR> "I also tried this
nnoremap <C-t> :tabnew<CR>
inoremap <C-S-tab> <Esc>:tabprevious<CR>i
inoremap <C-tab> <Esc>:tabnext<CR>i
inoremap <C-t> <Esc>:tabnew<CR>
inoremap <C-S-w> <Esc>:tabclose<CR>
"同样去第n个tabpage使用<A-Fn>
nnoremap <A-F1> 1gt
nnoremap <A-F2> 2gt
nnoremap <A-F3> 3gt
nnoremap <A-F4> 4gt
nnoremap <A-F5> 5gt
nnoremap <A-F6> 6gt
nnoremap <A-F7> 7gt
nnoremap <A-F8> 8gt
nnoremap <A-F9> 9gt
nnoremap <A-F10> 10gt
注意:我安装了ctags 和cscope。所以我认为可能存在一些冲突 ctrl-t
就是从某个标签跳回。并且只有此映射适用于新标签。
我也检查了ctrl-PageDown
出于同样的目的工作正常。
第二个问题:
这个键符号在 vimrc 中是如何工作的。 是不是像这样:
所有修饰键都应该像大写一样使用
- C 代表 Ctrl。
- A 代表 Alt。
- S 代表轮类。
其他的键都是小的。
但是像这样的键呢:
- 首页
- 结束
- 退格
- 逃离
- 上一页
- 向下翻页
- 制表符
- 功能键等
如何使用它们?
Here 我读到这些应该如何在映射中使用,但即使他们在映射中使用 tab 而不是 Tab。
最佳答案
做好失望的准备。
终端键码
Vim 接受终端键码,所以不是所有的键组合都是可能的。确定哪些键可识别的最佳方法是打开插入模式并按 ctrl+v,然后按您的组合键。这将向您展示原始代码。对另一个组合键执行此操作。如果原始代码相同,那么 Vim 无法区分它们。例如ctrl+v ctrl+shift+tab.
你的映射
您应该避免使用插入模式映射来切换选项卡。它根本不是 Vim 的方式,因为插入模式只应在短时间内使用。
你的 :tabprev
和 :tabnext
映射可以简化为 gT
和 gt
映射。我个人不介意默认 gt
或 gT
映射。
<key>
符号
据我所知,大小写无关紧要。我所有的映射都是小写的。有关 <>
的列表符号请看:h key-notation
.
您在 <c-..>
上是正确的用于控制,<a-...>
对于 alt,和 <s-...>
换类。示例组合为 <c-s-space>
.注:最<c-s-...>
映射将失败。
使用标签
Vim 的选项卡与大多数文本编辑器的选项卡不同。它们更像是一组窗口/拆分的视口(viewport)。此外,Vim 以缓冲区为中心,而不是像大多数编辑器那样以制表符为中心。例如,在没有制表符的情况下使用像 Vim 的快速修复列表这样的功能通常更容易(如果必须使用制表符,请参见 :h 'switchbuf
)。 Vim 的选项卡经常妨碍使用拆分,因为有更好的窗口和缓冲区导航命令可用。我个人打开了许多文件(有时超过 100 个),不使用选项卡,平均使用 1-2 次拆分没有任何问题。
底线:学习 use buffers effectively .
结论
我建议您快速打破此选项卡工作流程并学会喜欢缓冲区。你不会真的需要你的映射,你也不会违背 Vim 的本性。
关于vim - 选项卡导航映射不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26588576/