代码之家  ›  专栏  ›  技术社区  ›  f00860

VIM cant map<c-tab>to:tabNext

  •  8
  • f00860  · 技术社区  · 15 年前

    我的.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向后切换选项卡。为什么这个映射不起作用?

    4 回复  |  直到 9 年前
        1
  •  9
  •   Community CDub    8 年前

    你在用吗? xterm ?如果是这样,你就无法绘制地图 ctrl-tab 没有很多黑客。 X术语 许多其他的终端仿真器无法识别 CTRL标签 只需发送一个 tab 性格。

    有关详细信息,请参阅我的回答: Mapping <C-Tab> in my vimrc fails in Ubuntu

    或者你可以只用 gvim 如果这是合适的-它应该工作周围没有任何渣滓。

        2
  •  1
  •   Michael Anderson    15 年前

    可能是什么阻止了Vim看到C-tab。这可能是您的终端或窗口管理器。

    在某些OSE/WMS上,您可以设置窗口管理器快捷方式的异常,但是在WMS之间,如何设置异常会有很大的不同。

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

        3
  •  0
  •   Siwei    12 年前

    哦。。。需要映射吗?只需使用此预定义组合:

    • gt:==:选项卡下一步

    • gt:==:选项卡上一个

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

    对许多短键进行定义很容易,但如何记住所有短键,而不将它们与“ctrl+tab”、“alt+tab”混淆(大多数操作系统中常见的和常见的短键)。

    有关详细信息,请查看此页: http://vim.wikia.com/wiki/Alternative_tab_navigation

        4
  •  0
  •   MichalH    9 年前

    你所需要的只是 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 :

    !重要! -您必须键入而不是XXXX CTRL—V 然后 ESC 复制粘贴整个文本并运行 %s/\(set <F1[34]>=\)XXXX/\=submatch(1) . "\33"/g 哪个是复制意大利面(插入 <CTRL-R> + )

    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。

    完成。