Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当行的第一个字符是尖锐字符时,Vim编辑器缩进问题_Vim_Indentation - Fatal编程技术网

当行的第一个字符是尖锐字符时,Vim编辑器缩进问题

当行的第一个字符是尖锐字符时,Vim编辑器缩进问题,vim,indentation,Vim,Indentation,自从使用Vim的第一天起,这已经困扰了我三年了。每当我尝试通过Shift+>缩进一行时,当该行的第一个字符以“#”开头时,无论文件类型(.php、.txt等)如何,它都无法工作。因为#在PHP中用于注释,我也使用它装饰文本文件,例如: # This is a comment ### 1. Instruction one # ------------ this is an sample -------------- 谢谢 在.vimrc中插入以下内容: set nosmartindent 正

自从使用Vim的第一天起,这已经困扰了我三年了。每当我尝试通过Shift+>缩进一行时,当该行的第一个字符以“#”开头时,无论文件类型(.php、.txt等)如何,它都无法工作。因为#在PHP中用于注释,我也使用它装饰文本文件,例如:

# This is a comment ### 1. Instruction one # ------------ this is an sample --------------
谢谢

.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#