从使用Vim的第一天起,这个问题就一直困扰着我3年。每当我尝试通过Shift + >缩进一行时,当该行的第一个字符以"#"开头时,它根本不起作用,无论文件类型(.php, .txt等)。因为#在PHP中用于注释我也用它来修饰文本文件比如:
#这是一个注释# # # 1。指导一个# ------------ 这是一个样品 --------------我在Ubuntu中使用以下
.vimrc
设置的Vim 7.2syntax on set t_Co=256 set incsearch set hlsearch set number set nowrap set nowrapscan set ignorecase set et set sw=4 set smarttab set smartindent set autoindent set textwidth=0 set noequalalways set formatoptions=1 set lbr set vb set foldmethod=marker
在您的.vimrc
中插入以下内容:
set nosmartindent
是smartindent
导致以#
开头的行不像您想的那样缩进。您可以通过输入:help smartindent
来了解更多信息。如果你为python脚本(或任何其他语法)使用缩进文件,也包括以下内容:
filetype indent on
您可以使用:
inoremap # X^H#
我认为这种行为在C/c++中并不完全错误,因此我只是在python/php中更改它。
autocmd FileType python,php inoremap # X^H#
:help smartindent
说:
当输入#
作为新行的第一个字符时,缩进为这一行被删除,#
被放在第一列。的缩进为下一行还原。
如果你不需要这个,使用这个映射::inoremap # X^H#
,其中^H
和CTRL-V CTRL-H
一起输入。当使用>>
命令时,以#
开头的行不会右移。
在询问ChatGPT后,我终于找到了解决方案。
默认情况下,vim将foldignore设置为#
,您可以通过在vim中运行此命令来验证:
set foldignore?
您将看到输出foldignore=#
。
解决方案:将此添加到您的vim配置:
set foldignore=