我在.vimrc
文件(适用于所有文件类型)中有此映射。
nnoremap <F3> a<C-R>=strftime("%a %d %b %Y %r")<CR><Esc>
inoremap <F3> <C-R>=strftime("%a %d %b %Y %r")<CR>
我的python.vim
(位于after/ftplugin/
)中有:
nnoremap <S-F3> :up<cr>
inoremap <S-F3> <esc>:up<cr>a
F3 的映射在正常模式和插入模式下均可正常工作。但是对于 Shift + F3 映射,它应该保存当前文件。但它会在当前行上方插入一些意外字符,即 1;2R
。我不知道它代表什么。
这是:verbose nmap <S-F3>
:
n <S-F3> * :up<CR>
Last set from ~/.vim/after/ftplugin/python.vim
正是缩进。
答案 0 :(得分:4)
这与终端处理密钥的方式有关。通过按C-v然后按键,当您按下某个键时,您始终可以看到实际发送到程序的内容。这也适用于Vim。
解决方案:
1 - 在你的vimrc中输入nnoremap
部分的地图,最后有一个空格。
2 - 击中C-v然后击中S-F3。在我的机器上打印^[[25~
,这是您的终端发送给Vim的内容。
3 - 在键入:up<cr>
之前再添加一个空格。
它应如下所示:nnoremap ^[[25~ :up<cr>