【问题标题】:vim cant map <C-Tab> to :tabnextvim 不能将 <C-Tab> 映射到 :tabnext
【发布时间】:2010-06-04 23:43:23
【问题描述】:

我的 .vimrc 中有以下映射:

map <C-S-Tab> :tabprevious<CR>
nmap <C-S-Tab> :tabprevious<CR>
imap <C-S-Tab> <Esc>:tabprevious<CR>i

map <C-Tab> :tabnext<CR>
nmap <C-Tab> :tabnext<CR>
imap <C-Tab> <Esc>:tabnext<CR>i

我想用 Strg+Tab 向前切换标签,用 Strg+Shift+Tab 向后切换。为什么这个映射不起作用?

【问题讨论】:

  • 您的映射读取正确,可能是您的终端没有转发密钥。检查 shell 甚至可以在 bash 中使用“read”接收 ctrl-tab。它将阻止字符输入并显示接收到的击键。在我的 xterm 上,c-tab 和 c-s-tab 没有区别。阅读显示“^[[Z”为两者。 HTH。

标签: vim configuration keyboard-shortcuts configuration-files


【解决方案1】:

你在使用xterm吗?如果是这样,你不能映射ctrl-tab 没有很多hackery。 xterm 和许多其他终端仿真器无法识别 ctrl-tab,而只是发送 tab 字符。

请在此处查看我的答案以获取更多详细信息:Mapping <C-Tab> in my vimrc fails in Ubuntu

或者,如果合适的话,您也可以使用 gvim - 它应该可以正常工作。

【讨论】:

    【解决方案2】:

    某些东西可能会阻止 vim 看到 C-Tab。这可能是您的终端或窗口管理器。

    在某些操作系统/WM 上,您可以为窗口管理器快捷方式设置例外,但在不同的 WM 之间,您如何做到这一点却大相径庭。

    如果是您的终端阻止按键,我不确定是否有解决方案。

    【讨论】:

    • 窗口管理器不是问题。如果我切换到没有 X11/GUI 的 tty 终端,绑定仍然不起作用。我使用 Ubuntu 9.04。
    【解决方案3】:

    哦……需要映射吗?只需使用这个预定义的组合:

    • gt: == :tabnext

    • gT: == :tabprevious

    • [n]gt: == 跳转到 N 选项卡,例如1gt , 3gt

    定义许多短键很容易,但是你怎么能记住所有的短键,而不是把它们和 'ctrl + tab' , 'alt + tab' (大多数操作系统中常见的和常用的短键)混在一起

    查看此页面了解更多详情:http://vim.wikia.com/wiki/Alternative_tab_navigation

    【讨论】:

      【解决方案4】:

      您只需要xterm

      把它放在你的.Xresources文件中(在这种情况下你可以复制粘贴):

      xterm*VT100.Translations: #override \
                   Ctrl ~Shift <Key>Tab: string(0x1b) string("[27;5;9~") \n\
                   Ctrl Shift <Key>Tab: string(0x1b) string("[27;6;9~")
      

      然后执行cd ; xrdb .Xresources 并重新启动xterm。


      把这个放在你的.vimrc:

      !!重要 - 您必须键入 CTRL-V 而不是 XXXX,然后键入 Esc OR 复制粘贴整个文本并运行 @987654326 @ 可复制粘贴(用 &lt;CTRL-R&gt; + 插入)。

      set timeout timeoutlen=1000 ttimeoutlen=100
      set <F13>=XXXX[27;5;9~
      nnoremap <F13> gt
      set <F14>=XXXX[27;6;9~
      nnoremap <F14> gT
      

      然后重启 vim。

      完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        • 1970-01-01
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多