VIM:插入新行,然后按Escape键将光标移动到行的开头

VIM:插入新行,然后按Escape键将光标移动到行的开头,vim,vi,Vim,Vi,编辑python文件时,插入新行后按,光标将一直移动到行的开头(即第0列)。如何阻止这种行为?当我想在新行上粘贴一些东西时,这真的很烦人 以下是我的相关.vimrc设置: set softtabstop=2 set expandtab set shiftwidth=2 set smartindent 如果在按Esc键之前编辑该行(如按空格键),则Vim将保持缩进完整。如果编辑该行(如按空格键)在按下Esc键之前,Vim将保持缩进不变。如果您的目标是在使用o或o启动后将内容粘贴到新行上,则不必为

编辑python文件时,插入新行后按
,光标将一直移动到行的开头(即第0列)。如何阻止这种行为?当我想在新行上粘贴一些东西时,这真的很烦人

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

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

如果在按Esc键之前编辑该行(如按空格键),则Vim将保持缩进完整。

如果编辑该行(如按空格键)在按下Esc键之前,Vim将保持缩进不变。

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

只需键入
Control-R“
即可从默认寄存器直接从插入模式粘贴


更一般地说,您可以键入
Control-R
从插入模式从该寄存器中粘贴。

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

只需键入
Control-R“
即可从默认寄存器直接从插入模式粘贴


一般来说,您可以键入
Control-R
以从插入模式从该寄存器粘贴。

从正常模式,快速
==
将使用缩进设置将行缩进到它应该位于的任何位置。至少对我来说是这样的。我的vimrc中的相关缩进部分:

if has("autocmd")
  filetype plugin indent on
endif

在正常模式下,快速缩进将使用缩进设置将行缩进到它应该位于的任何位置。至少对我来说是这样的。我的vimrc中的相关缩进部分:

if has("autocmd")
  filetype plugin indent on
endif

您可以添加映射,以便在触发自动缩进时插入单个字符,然后删除:

:nnoremap o ox^H
:nnoremap O Ox^H
:inoremap <enter> <enter>x^H
:nnoremap o ox^H
:nnoremap O Ox^H
:inoremap x^H
^H
必须通过按ctrl+vctrl+H来引入。
所以不要复制粘贴。

您可以添加映射,以便在触发自动缩进时插入单个字符,然后删除:

:nnoremap o ox^H
:nnoremap O Ox^H
:inoremap <enter> <enter>x^H
:nnoremap o ox^H
:nnoremap O Ox^H
:inoremap x^H
^H
必须通过按ctrl+vctrl+H来引入。 所以不要复制粘贴。

如果您已经按了Esc键或稍后要返回到该行,则很容易获得缩进以进行编辑或粘贴

只需使用cc编辑行,重新应用自动缩进并使您进入插入模式。然后,您可以开始键入或使用CTRL+R+从系统剪贴板从当前光标位置粘贴

注:如果您停止编辑行而不输入任何文本,Vim将再次删除缩进。这是有意的,因为它可以防止浪费性的尾随空格散落在文件中。

如果您已经按了Esc键或稍后要返回该行,则很容易获得缩进以进行编辑或粘贴

只需使用cc编辑行,重新应用自动缩进并使您进入插入模式。然后,您可以开始键入或使用CTRL+R+从系统剪贴板从当前光标位置粘贴


注:如果您停止编辑行而不输入任何文本,Vim将再次删除缩进。这是有意的,因为它可以防止浪费性的拖尾空格散落在文件中。

我只使用^H,而不是我自己。更清晰,无需特殊说明即可进入。我只需使用^H,而不是我自己。更清晰,无需特殊说明即可输入。特殊情况:如果您从VIM外部复制了内容,则可以从系统剪贴板使用
Control-R+
到过去。特殊情况:如果您从VIM外部复制了内容,则可以从系统剪贴板使用
Control-R+
到过去。