Vim:映射ctrl + pgup和ctrl + pgdn(CTRL + Page Up / Down)组合键

GreenRaccoon23:

我正在尝试将Vim命令映射到ctrl+pgupctrl+pgdn组合键。这些键的vim语法不起作用(即<PageUp><PageDown>,或<C-PageUp><C-PageDown>)。

由于默认的vim语法不起作用,我猜测终端没有发送字符代码ctrl+pgup以及ctrl+pgdn期望的Vim。如果是这样,我不确定如何找出文字键码是什么。我在Arch Linux上使用xfce4-terminal。

这是我尝试过的:

  1. 常用方法:

    map <C-PageUp> :bp<cr>
    
  2. 使用以下答案的方法从命令行进行设置:为什么<C-PageUp>和<C-PageDown>在vim中不起作用?

    :map <CTRL-V><CTRL-PAGEUP> :bp<cr>
    

    当我在命令行中键入上面的命令时,没有任何显示:

    map  :bp<cr>
    

    维姆说No mapping found

  3. 该方法来自Vim Wiki:http ://vim.wikia.com/wiki/Mapping_keys_in_Vim_- 教程(Part_2)#Key_notation

    set <PageUp>=<type Ctrl-V><type PageUp> "^[[5~
    map <C-PageUp> :bp<cr>
    
  4. 该答案的修改:

    set <C-PageUp>=<type Ctrl-V><type Ctrl+PageUp> "^M
    map <C-PageUp> :bp<cr>
    
  5. 意识到这<type *>是一个用户命令后,我执行了这些命令,并vim粘贴了输出。我替换<type *>为以下输出:

    set <PageUp>=^[[5~
    map <C-PageUp> :bp<cr>
    " Also:
    set <PageUp>=[[5~
    map <C-PageUp> :bp<cr>
    " Also:
    set <PageUp>=<^[[5~>
    map <C-PageUp> :bp<cr>
    " Also:
    set <PageUp>=<[[5~>
    map <C-PageUp> :bp<cr>
    " Also:
    set <C-PageUp>=^M
    map <C-PageUp> :bp<cr>
    " Also:
    set <C-PageUp>=<^M>
    map <C-PageUp> :bp<cr>
    
  6. 尝试5中的所有方法,但无需先设置选项。例如:

    map <C-[[5~> :bp<cr>
    
  7. 此答案中的方法:https : //groups.google.com/forum/#!topic/ vim_use/ j85-2xQkb7s

    map [5~ :bp<cr>
    
  8. 此答案中的方法:https : //superuser.com/questions/322983/how-to-let-ctrl-page-down-switch-tabs-inside-vim-in-terminal-app

     map \033[5;5~ :bp<cr>
    
  9. 设置不同的术语选项:

     set term=xterm
     " Also:
     set term=xterm-256color
    

    我的$TERM环境变量设置为xterm

  10. 使用此答案提示的某些方法:通常在https://superuser.com/questions/480215/how-to-map-pagedown-and-pageup-keys-to-function-正常

     map <Esc>[5~ :bp<cr>
     map <kpp> :bp<cr>
    
  11. 尝试使用文件.vim/after/plugin/而不是in 尝试上述所有操作.vimrc
  12. 使用:MBEbp代替尝试上述所有操作:bp

我还能尝试什么?

GreenRaccoon23:

好吧,我知道了。我忽略了一些非常简单的事情,这对我来说通常就是这种情况。

ctrlpgup并且ctrlpgdn已经是xfce4-terminal本身中的键盘快捷键(用于切换Terminal标签)。为了允许Vim使用这些组合键,终端本身不能使用它们。所以这是xfce4-terminal而不是Vim的问题。

可以使用此处描述的方法取消设置xfce4-terminal快捷方式:https : //unix.stackexchange.com/questions/159979/xfce4-terminal-disable-individual-shortcut

简而言之,过程如下:

  1. 打开~/.config/xfce4/terminal/accels.scm并取消注释/编辑行:

    (gtk_accel_path "<Actions>/terminal-window/next-tab" "")
    (gtk_accel_path "<Actions>/terminal-window/prev-tab" "")
    

    (您可以通过打开新窗口并单击菜单栏中的选项卡来验证此更改:“ 上一个选项卡”和“ 下一个选项卡”项不应再在其右侧显示快捷方式。)

  2. 将此命令放在.vimrc

    map <C-PageUp> :bp<CR>
    map <C-PageDown> :bn<CR>
    

    nmap而是考虑将快捷方式限制为NORMAL模式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Linux上重新映射Win,Ctrl和Alt键

在JavaScript中捕获Ctrl + Z组合键

Java在jtree上检测CTRL + X组合键

映射Ctrl + [和Ctrl +]在Vim中的缓冲区之间移动

如何在Embarcadero C ++ Builder中检测Ctrl + P组合键

如何在vscode中配置Ctrl + PgUp和Ctrl + PgDown键绑定,导航到视图的顶部/底部,而不是切换选项卡?

为什么Ctrl-K Ctrl-F组合键不能用于php可视代码?

任何JetBrains IDE:如何将Ctrl +鼠标滚轮映射到Page Up / Down操作?

Windows组合键ctrl + alt + del的模拟

尝试使用xmodmap将<Ctrl> + <hjkl>全局映射到<Left Down Up Right>(类似于Vim的箭头键)

如何在Autohotkey中发送Ctrl + F组合键

Windows 10 Pro(1903版)中的“ Ctrl + Alt + Shift + F”组合键有什么作用?

如何重新映射Caps Lock和Ctrl键?

如何禁用Gnome ctrl + alt + down和ctrl + alt + up快捷方式?

如何在Xubuntu 14.04上重新映射Ctrl + C和Ctrl + V的键盘快捷键?

在VIM中产生信号“ Ctrl- ^”的键盘组合键是什么?

带有KDE的linux,禁用CTRL + F9组合键

我可以禁用CTRL + ALT + ArrowKey组合键来支持Windows 10虚拟桌面吗?

Ctrl + 1和Ctrl + 2键组合不起作用

DataGridViewCell陷阱CTRL + Up或CTRL + Down

Ubuntu 14.04 LTS组合键“ Ctrl +”不会放大窗口

组合键(例如ctrl,alt或shift)在ubuntu 16.04上不起作用

当某个单元格的值=“ 1”时,自动按下组合键(例如Ctrl + Alt + x)

从 Android Teamviewer 发送 Alt Shift 和 Ctrl 组合键

VirtualBox VM 上的 Xubuntu 看不到 CTRL-Fn 组合键

中断组合键(例如 CTRL-C)如何以及何时转换为信号?

如何在组合键CTRL + i上用<em>包围textarea内的选定文本?

在visual studio代码中如何在组合[alt + ctrl + ']中组合键[`]?

如何使两个键 Ctrl + S 按下组合键?