当行的第一个字符是尖锐字符时,Vim编辑器缩进问题
自从使用Vim的第一天起,这已经困扰了我三年了。每当我尝试通过Shift+>缩进一行时,当该行的第一个字符以“#”开头时,无论文件类型(.php、.txt等)如何,它都无法工作。因为#在PHP中用于注释,我也使用它装饰文本文件,例如: # This is a comment ### 1. Instruction one # ------------ this is an sample --------------当行的第一个字符是尖锐字符时,Vim编辑器缩进问题,vim,indentation,Vim,Indentation,自从使用Vim的第一天起,这已经困扰了我三年了。每当我尝试通过Shift+>缩进一行时,当该行的第一个字符以“#”开头时,无论文件类型(.php、.txt等)如何,它都无法工作。因为#在PHP中用于注释,我也使用它装饰文本文件,例如: # This is a comment ### 1. Instruction one # ------------ this is an sample -------------- 谢谢 在.vimrc中插入以下内容: set nosmartindent 正
谢谢 在
.vimrc
中插入以下内容:
set nosmartindent
正是smartindent
导致以#
开头的行不按您的需要缩进。您可以通过键入:help smartindent
了解更多信息。如果对python脚本(或任何其他语法)使用缩进文件,还应包括以下内容
filetype indent on
您可以使用:
inoremap # X^H#
我认为这种行为对于C/C++来说并不是完全错误的,因此我只是在python/php中对其进行了更改
autocmd FileType python,php inoremap # X^H#
:帮助smartindent
说明:
当键入#
作为新行的第一个字符时,缩进
删除该行后,#
将放在第一列。缩进
为下一行恢复
如果不希望这样,请使用此映射::inoremap#X^H#
,其中^H
是用CTRL-V CTRL-H
输入的。
当使用
>
命令时,以#
开头的行不会右移。这并不能解决我的问题。我在上有nosmartident
和文件类型缩进,但vim仍然不允许我缩进以#
开头的行。当我键入#
作为行中的第一个字符时,它还会将光标移动到第一列。有什么线索吗?@MichaelHärtl默认情况下,我遇到了与您完全相同的问题。Rmd默认启用了这种恼人的行为,切换这种行为的正确咒语是::set nocindent
将其关闭,:set cindent
将其重新打开,定义如下:
autocmd FileType python,php inoremap # X^H#