在Vim的插入模式下,注释(#)到行首

每当我想在vim中给一个缩进行添加一个注释,我就按下Shifto (打开当前的新行,切换到插入模式),然后开始input一个Python注释(使用# )。 然后,这个哈希值被神奇地移动到了行的开头(没有缩进),我必须点击几次tab。

任何人都知道如何解决它?

3 Solutions collect form web for “在Vim的插入模式下,注释(#)到行首”

我想你已经在你的.vimrc中set smartindent

参见:h smartindent

 When typing '#' as the first character in a new line, the indent for that line is removed, the '#' is put in the first column. The indent is restored for the next line. If you don't want this, use this mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H. When using the ">>" command, lines starting with '#' are not shifted right. 

我相信你编码python时不需要smartindenting。 所以只要从你的设置中删除它或添加以下到您的.vimrc:

 au! FileType python setl nosmartindent 

尝试把它放在你的.vimrc中:

 autocmd BufRead *.py inoremap # X<ch># 

这将使得在Python源文件中插入hash(磅)符号总是缩进。

您可能想尝试Nerd Commenter ,这是一个插件,允许您自动添加评论到大多数语言的行。 您只需将光标放在您感兴趣的行上,然后键入c Space并将该行注释掉。 相同的击键将删除注释以显示该行。

所以如果你有:

 def func(): print("indented") <- cursor position in command mode 

types c 空间 ,你会得到:

 def func(): #print("indented") 
  • 为什么Vim用〜扩展名保存文件?
  • 如何在Vim中保存和恢复多个不同的会话?
  • 你如何从Vim中的'gf'返回
  • Vim:在空白行上input插入模式时,智能缩进?
  • 如何插入空格到X列排列列中的东西?
  • VIM中的expandtab选项为ON时如何插入Tab字符
  • 删除Vim中一行之前的所有任意空格
  • 如何在Vim中禁用“按ENTER键或input命令以继续”提示?
  • 如何设置默认的vim colorscheme
  • 如何隐藏gvim的菜单/工具栏?
  • Vim用户,你在哪里rest你的右手?