我已将 Ctrl - j 映射到下面的缓冲区。但它很难映射 到了别的东西,所以我不得不写下面的第一行,使其可以映射到 所有
下面的脚本运行完美,除非我写.sh文件。我有 安装了bash-support插件。
let g:C_Ctrl_j = 'off'
map <C-j> <C-w>j
编辑:我刚刚发现问题出在bash支持上。巴什支持
将 Ctrl - j 映射到跳转插入(或类似的东西),将光标移动到a
预定义点并进入插入模式。我想在bash-support中改变它
尽管我不喜欢弄乱那些文件,但脚本会完成这项工作。
EDIT2:让g:C_Ctrl_j ='off'实际上变成了csupport插件跳转插入功能。
答案 0 :(得分:8)
根据the document of bash-support.vim:
Ctrl-j的原意是'向下移动[n]行'(参见| CTRL-j |)。 如果您习惯使用默认值而不喜欢这些跳转目标 可以关掉它们。将以下行放在'.vimrc'文件中:
让g:BASH_Ctrl_j ='off'
因此您必须将let g:BASH_Ctrl_j = 'off'
放入vimrc。
此外,在vimrc中使用nnoremap <C-j> <C-w>j
代替map <C-j> <C-w>j
。
后者定义了Normal,Visual和Operator-pending模式中的键映射。
键映射也是递归扩展的。
当您定义更多键映射时,它可能会导致麻烦。
答案 1 :(得分:6)
Ctrl - j (0x0A)是一个特殊字符Line Feed。
很有可能这个按键不是以 Ctrl - j (0x0A)到达Vim。
在我Mac上的Terminal.app窗口的Vim中,输入 Ctrl - v Ctrl - j 显示^@
,(0x00或NULL)。而 Ctrl - v Ctrl - g 和 Ctrl - v < / kbd> Ctrl - k 分别显示^G
和^K
。
我建议使用另一个映射(或者只是训练自己使用 Ctrl - w j )。
答案 2 :(得分:2)
我有同样的问题,但原因不同。 VIM-LaTeX使用imaps.vim插件,也是remaps some keys,包括 Ctrl - j 。对我有用的是在autocmd
中设置.vimrc
:
augroup vimrc
au!
au VimEnter * unmap <C-j>
au VimEnter * noremap <C-j> <C-w>j
augroup END
VimEnter
触发器确保在vim启动后执行重映射,并加载插件(如果我理解正确的话),所以它会覆盖imaps.vim插件&#39;的地图。
答案 3 :(得分:1)
尝试非递归映射,
nnoremap <C-j> <C-w>j
应该这样做。