我已经映射Ctrl- j移动到下面的缓冲区.然而,它很难映射到其他东西,所以我不得不写下面的第一行,使其可以映射.
下面的脚本工作得很好,除非我写.sh文件.我安装了bash-support插件.
let g:C_Ctrl_j = 'off'
map <C-j> <C-w>j
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚发现问题在于bash支持.Bash支持映射Ctrl- j跳转插入(或类似的东西),将光标移动到预定义的点并进入插入模式.我想在bash-support脚本中更改它会完成这项工作虽然我不喜欢弄乱那些文件.
EDIT2:让g:C_Ctrl_j ='off'实际上变成了csupport插件跳转插入功能.
Ctrl-j的原意是'向下移动[n]行'(参见| CTRL-j |).如果您习惯使用默认值并且不喜欢这些跳转目标,则可以将其关闭.将以下行放在'.vimrc'文件中:
让g:BASH_Ctrl_j ='关'
所以你必须把let g:BASH_Ctrl_j = 'off'
你的vimrc.
此外,使用nnoremap <C-j> <C-w>j
而不是map <C-j> <C-w>j
在您的vimrc中.后者定义了Normal,Visual和Operator-pending模式中的键映射.键映射也是递归扩展的.定义更多键映射时,可能会导致麻烦.
Ctrl- j(0x0A)是一个特殊字符Line Feed.
很有可能这个按键不是没有到达Vim Ctrl- j(0x0A).
在Mac上Terminal.app窗口的Vim中,输入Ctrl- v Ctrl- j显示^@
,(0x00或NULL).然而Ctrl- v Ctrl- g和Ctrl- v Ctrl- k 显示^G
和^K
分别.
我建议使用另一个映射(或者只是训练自己使用Ctrl- w j).
小智 5
我有同样的问题,但出于不同的原因。VIM-LaTeX 使用imaps.vim插件,它还重新映射一些键,包括Ctrl- j。对我有用的是autocmd
在我的.vimrc
:
augroup vimrc
au!
au VimEnter * unmap <C-j>
au VimEnter * noremap <C-j> <C-w>j
augroup END
Run Code Online (Sandbox Code Playgroud)
触发器VimEnter
确保重映射将在 vim 启动后执行,并且加载插件(如果我理解正确的话),因此它会覆盖 imaps.vim 插件的映射。取消映射不是必需的,但也没什么坏处。
归档时间: |
|
查看次数: |
9109 次 |
最近记录: |