插入新行,然后按转义键将光标移动到行首



当我编辑python文件时,在我插入新行然后按<ESC>后,光标一直移动到该行的开头(即。我如何停止这种行为?当我想在新行上粘贴一些东西时,这真的很烦人。

以下是我的相关.vimrc设置:

set softtabstop=2
set expandtab
set shiftwidth=2
set smartindent

如果您的目标是在使用oO启动后将内容粘贴到新行上,则不必为其进入正常模式。

只需键入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将再次删除缩进。这是有意为之的,因为它可以防止文件中多余的尾随空格。

最新更新