Vim需求:可视模式缩进时自动退出paste mode
解决Vim缩进时自动关闭paste mode的问题
直接修改你现有的可视模式缩进映射,把关闭paste mode的命令整合进去即可:
vmap > :set nopaste<CR>>gv
这个映射的逻辑是:按下>时先执行:set nopaste关闭粘贴模式,再执行原本的缩进操作>,最后通过gv保持选中状态,完全不影响你原本的缩进使用习惯。
如果需要覆盖反向缩进(<),可以同步修改:
vmap < :set nopaste<CR><gv
要是担心普通模式下的缩进命令(比如>>/<<)也碰到相同问题,也可以给普通模式加对应映射:
nnoremap >> :set nopaste<CR>> nnoremap << :set nopaste<CR><<
你之前的方案失败大概率是命令顺序有误——比如把关闭paste mode的操作放在缩进之后,导致缩进执行时paste mode还没关闭,依然会触发制表符问题。上面的写法确保了缩进前就已经退出粘贴模式,从根源上解决问题。
内容的提问来源于stack exchange,提问作者jsharpe
相关产品推荐
相关产品推荐

