我正在尝试将Vim命令映射到ctrl pgup和ctrl pgdn组合键.这些密钥的vim语法不起作用(即< PageUp>和< PageDown>,或< C-PageUp>和< C-PageDown>).
由于默认的vim语法不起作用,我猜测终端没有发送Vtrl所期望的ctrl pgup和ctrl pgdn的字符代码.如果这是真的,我不知道如何找出文字键码是什么.我在Arch Linux上使用xfce4-terminal.
这是我尝试过的:
>通常的方法:
map <C-PageUp> :bp<cr>
>使用此答案的方法从命令行设置它:Why <C-PageUp> and <C-PageDown> not work in vim?
:map <CTRL-V><CTRL-PAGEUP> :bp<cr>
当我在命令行中键入上面的命令时,没有显示:
map :bp<cr>
Vim说找不到映射.
>这个方法来自Vim wiki:http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_2)#Key_notation
set <PageUp>=<type Ctrl-V><type PageUp> "^[[5~
map <C-PageUp> :bp<cr>
>对答案的修改:
set <C-PageUp>=<type Ctrl-V><type Ctrl+PageUp> "^M
map <C-PageUp> :bp<cr>
>在意识到< 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>
>尝试5中的所有方法,但不先设置选项.例如.:
map <C-[[5~> :bp<cr>
>这个答案的方法:https://groups.google.com/forum/#!topic/vim_use/j85-2xQkb7s
map [5~ :bp<cr>
map \033[5;5~ :bp<cr>
>设置不同的术语选项:
set term=xterm
" Also:
set term=xterm-256color
我的$TERM环境变量设置为xterm.
>使用此答案提示的一些方法:https://superuser.com/questions/480215/how-to-map-pagedown-and-pageup-keys-to-function-normally
map <Esc>[5~ :bp<cr>
map <kpp> :bp<cr>
>尝试使用.vim / after / plugin /下的文件而不是.vimrc中的所有内容.
>尝试上面的所有内容:MBEbp而不是:bp.
我还能尝试什么?
解决方法:
好吧,我明白了.我忽视了一些非常简单的事情,这通常适用于我.
ctrlpgup和ctrlpgdn已经是xfce4-terminal本身的键盘快捷键(用于切换终端选项卡).为了允许Vim使用这些组合键,终端本身不能使用它们.所以这是xfce4-terminal的一个问题,而不是Vim.
可以使用此处描述的方法取消设置xfce4-terminal快捷方式:
https://unix.stackexchange.com/questions/159979/xfce4-terminal-disable-individual-shortcut
简而言之,这是一个过程:
>打开设置(xfce4-settings-manager),转到外观>设置和切换启用可编辑加速器.
>编辑/创建〜/ .gtkrc-2.0并将此行追加到文件中:
gtk-can-change-accels=1
>打开xfce4终端窗口,然后在同一窗口中打开另一个选项卡.
>突出显示标签>在上一个选项卡上,按退格键,然后键入新的键盘组合.
>使用Tabs>重复步骤4下一个标签.
>将此命令放在.vimrc中:
map <C-PageUp> :bp<cr>