注意:我使用终结者而不是终端。但是,由于所有其他映射都运行良好,为什么这些映射不起作用。
我尝试在我的vimrc文件中使用这些映射,以便能够使用Tab Navigation。但它根本不起作用。
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>
&#34;还要转到第n个标题页使用<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中是如何工作的。 它是这样的:
所有修饰键都应该在Caps等
中使用其他键都很小。
但关键如:
如何使用它们?
Here 我读到了这些应该如何用于映射,但即使他们在映射中使用了 tab 而不是 Tab 。
答案 0 :(得分:3)
让自己失望。
Vim接受终端密钥代码,因此并非所有密钥组合都可以。确定哪些键可识别的最佳方法是打开插入模式并按 ctrl + v ,然后按下您的组合键。这将显示原始代码。这是另一个组合键。如果原始代码相同,那么Vim无法区分它们。例如 ctrl + v ctrl + shift + tab 。
您应该避免执行插入模式映射来切换选项卡。它不是Vim Way,因为插入模式只能在短时间内使用。
您的:tabprev
和:tabnext
映射可以简化为gT
和gt
映射。就个人而言,我不介意默认的gt
或gT
映射。
<key>
符号据我所知,此案无关紧要。我的所有映射都是小写的。有关<>
表示法的列表,请参阅:h key-notation
。
对于控件<c-..>
,alt为<a-...>
,shift为<s-...>
,你是正确的。示例组合为<c-s-space>
。注意:大多数<c-s-...>
映射都会失败。
Vim的标签与大多数文本编辑器标签不同。它们更像是一组窗口/分裂的视口。此外,Vim以缓冲区为中心,而不像大多数编辑器那样以标签为中心。例如,如果没有标签,使用像Vim的quickfix列表这样的功能通常会更容易(如果必须使用标签,请参阅:h 'switchbuf
)。 Vim的选项卡经常妨碍使用拆分,因为有更好的窗口和缓冲区导航命令可用。我个人有很多文件打开(有时100多个)没有使用标签,平均使用1-2个分割没有任何问题。
结论:了解use buffers effectively。
我建议你快速打破这个标签工作流程并学会爱缓冲。你不会真的需要你的映射,你也不会反对Vim的本性。
答案 1 :(得分:2)
阅读:help key-notation
,了解... Vim的关键符号。
安全地播放通常是一个好主意,因此我建议在映射组合时遵循这些约定:
始终使用大写字母作为修饰键,C
表示Control
,S
表示Shift
,A
表示Alt
},D
代表Command
(仅限MacVim GUI),M
代表Meta
,
始终对字母键使用小写字母abc…xyz
,
始终将&#34; special&#34;的第一个字母大写密钥,Tab
,Space
,Up
等
示例:
<S-Up>
<C-r>
<A-LeftMouse>
然而,以下符号也同样有效...所以无论你选择哪种符号,都要保持一致:
<s-UP>
在单个映射中使用多个修饰符无法可靠地运行,因此如果您完全避免使用它们,那么从长远来看,您会更好。
nnoremap <C-S-j> :echo "csj"<CR>
nnoremap <C-j> :echo "cj"<CR>
现在按正常模式<C-j>
和<C-S-j>
。
<C-S-w>
与<C-w>
无法区分。
:verbose map <C-t>
显示映射到<C-t>
的内容以及映射发生的位置。您可以使用它来调试映射。
我同意Peter的意见,你正在错误地使用标签页和插入模式。