Vim:在空白行上input插入模式时,智能缩进?

当我打开一个新行(通过“o”)时,我的光标跳到下一行正确缩进的位置。 另一方面,当我的光标位于空白行时,进入插入模式不会将光标移动到正确缩进的位置。

在空白行input插入模式(通过i)时,如何使vim正确缩进光标?

3 Solutions collect form web for “Vim:在空白行上input插入模式时,智能缩进?”

cc将replace当前行的内容,并在正确的缩进处input插入模式 – 这样一个空行就可以完成你正在做的事情。

我相信你描述的i的行为是正确的,因为有很多用例,你想要插入到一个空白行的特定位置,而不是跳到vim想要插入的地方。

这实际上并没有我想象的那么糟糕。 一种方法是将以下内容添加到〜/ .vimrc中

 "smart indent when entering insert mode with i on empty lines function! IndentWithI() if len(getline('.')) == 0 return "\"_ccO" else return "i" endif endfunction nnoremap <expr> i IndentWithI() 

只要从插入模式中点击“i”,它就会检查一个空行。 如果你确实是空着的话,它会删除它,并打开一个新的,有效地利用工作的“开放线”行为。

注意:“cc之前确保您的注册不被擦除

在一个空行上,要正确input插入模式,可以简单地使用s

请注意, scl的同义词,所以如果实际上不在空行上,它将最终删除单个字符而不是缩进。 在那种情况下,你最好使用cc ,正如sml在18个月前提出的那样。 但是我经常使用这个捷径改进我在VimGolf的得分,所以我想我会提到它。 ;)

  • 如何跳到视觉select的开始/结束?
  • Vim:如何改变search命中和快速select的高亮颜色
  • 我如何closures所有打开的标签一次?
  • 如何在VIM中切换到REPLACE模式
  • VIM色彩奇怪的行为256色屏幕内
  • (Vim)在同一个文件中比较两个子例程
  • 在tmux模式下丢失vim色彩scheme
  • 如何修复Vim中不正确的内联Javascript缩进?
  • 如何在使用putty时粘贴到vim
  • 使用VI,VIM或GVIM作为IDE
  • VIM在文件结束时禁用自动换行