我希望能够在插入模式下将文件保存在vim中.我想过使用以下快捷方式:
inoremap <leader>w <Esc>:w<cr>
Run Code Online (Sandbox Code Playgroud)
当快捷方式将文件保存在插入模式时,如果我实际键入了Esc :w后面的键,它会将光标留在光标所在的位置之前一个位置
Enter.这是一个问题,因为当我在一行的末尾使用快捷方式时,它会将我带到下一行,然后我必须回到我启动保存的位置.
任何帮助将不胜感激我如何映射<leader>w到Vim中发生的确切操作,当我实际键入Esc :w后面的Enter键序列.
我应该补充说,如果我改为使用以下键映射,那么事情就像我想要的那样:
inoremap <C-s> <esc>:w<CR>
Run Code Online (Sandbox Code Playgroud)
不过,我想,以避免紧迫CTRL和s在同一时间.可能有一些问题<leader>,但我无法弄清楚它是什么(我,用作我的领导键).
虽然可以讨论插入模式映射的适用性,但问题的根本原因是映射定义中的尾随空格 ; 即Vim读取如下:
inoremap <leader>w <Esc>:w<cr><Space>
Run Code Online (Sandbox Code Playgroud)
你甚至会在:imap <Leader>w输出中看到这个!<Space>在正常模式下,将光标向右推进(如l); 这解释了意想不到的举动.