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