当我编辑python文件时,在我插入新行然后按<ESC>
后,光标一直移动到该行的开头(即。我如何停止这种行为?当我想在新行上粘贴一些东西时,这真的很烦人。
以下是我的相关.vimrc设置:
set softtabstop=2
set expandtab
set shiftwidth=2
set smartindent
如果您的目标是在使用o
或O
启动后将内容粘贴到新行上,则不必为其进入正常模式。
只需键入Control-R "
即可从默认寄存器直接从插入模式粘贴。
更一般地说,您可以输入Control-R <RegisterName>
来从插入模式粘贴寄存器
如果在按Esc之前编辑行(例如按SpaceBackspace),则Vim将保留缩进完整。
在正常模式下,快速使用==
将行缩进到使用缩进设置的任何位置。至少,对我来说是这样的。我的vimrc中的相关缩进部分:
if has("autocmd")
filetype plugin indent on
endif
你可以添加映射,当触发自动缩进时,插入一个字符然后删除:
:nnoremap o ox^H
:nnoremap O Ox^H
:inoremap <enter> <enter>x^H
^H
必须通过按ctrl+vctrl+h引入。所以不要复制粘贴。
如果您已经按下Esc或者稍后要返回该行,则很容易将缩进恢复为编辑或粘贴。
只需使用cc来编辑行,重新应用自动缩进并进入插入模式。然后,您可以开始键入或使用CTRL+R+例如从当前光标位置粘贴系统剪贴板。
注意如果你在没有输入任何文本的情况下停止编辑该行,Vim将再次删除缩进。这是有意为之的,因为它可以防止文件中多余的尾随空格。