在描述我的问题之前,我会列出env.这里的申请:
OS:linux 2.6.37-ARCH  (archlinux i686)
vim: 7.2.436
Terminal emulator: urxvt (with 256colors patch)
kent$ echo $TERM
rxvt-256color
screen: Screen version 4.00.03 (FAU) 23-Oct-06
我在终端运行vim.我想通过按ALT-hjkl将光标移动到INSERT模式,光标移动后,保持INSERT模式,这样我就可以继续输入单词了.
我找到的文章:
http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim
http://vim.wikia.com/wiki/Get_Alt_key_to_work_in_terminal
我试过的:
在.vimrc中使用ttimeoutlen = 50执行keyCode映射,如下所示:(仅粘贴alt-j映射作为示例):
set timeout ttimeoutlen=50
set <F13>=^[j  "ctrl-v alt-j
imap <F13> <down>
使用此conf,在INSERT模式下移动光标是可以的.如果我按<ESC>和j.Vim让我回到插入模式.我不知道为什么ttimeoutlen=50不起作用.
还尝试过:
set timeout ttimeoutlen=50
set <M-j>=^[j
使用此设置,当我按下ALT-j时,键入带有重音符号的"e".
你们能给我任何提示我应该如何在终端中映射ALT-hjkl?
提前致谢
肯特
sid*_*yll 19
映射您的组合键的功能更容易.Alt+something通常导致一个角色,不同于Ctrl+something.
例如,在我的Mac Alt上hjkl生成???¬.所以:
imap ? <Left>
imap ? <Down>
imap ? <Up>
imap ¬ <Right>
会做的.
lfe*_*445 13
对于箭头键:
首先查看终端发送给vim的密钥代码:
$ sed -n l
^[[1;9D 
在上面的例子中,我运行了sed命令并按下了Alt + Left.
将^[[1;9D被发送到VIM逃脱的序列,因此我们可以通过用户对于我们的映射.
将其添加到.vimrc中
map <Esc>[1;9D :tabn<CR>
现在我们可以通过使用循环浏览vim选项卡 Alt + Left