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

时间:2011-04-11 14:00:16

标签: vim indentation

自从第一天使用Vim 3年以来,这一直困扰着我。每当我尝试通过 Shift + > 缩进一行时,当行的第一个字符以“#”开头时,它根本不起作用,无论是什么文件类型(.php,.txt等)。因为#用于PHP中的注释,我也用它来装饰文本文件,如:

# This is a comment

### 1. Instruction one

# ------------ this is an sample --------------

我在Ubuntu中使用Vim 7.2并使用以下.vimrc设置

syntax 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

谢谢!

2 个答案:

答案 0 :(得分:5)

.vimrc

中插入以下内容
set nosmartindent

smartindent导致以#开头的行不能缩进。您可以输入:help smartindent来详细了解相关信息。如果您对python脚本(或任何其他语法)使用缩进文件,请包含以下内容。

filetype indent on

答案 1 :(得分:1)

您可以使用:

inoremap # X^H#

我认为这种行为对于C / C ++并不完全错误,因此我只是在python / php中更改它。

autocmd FileType python,php inoremap # X^H#

:help smartindent说:

当键入#作为新行中的第一个字符时,缩进为 该行已删除,#将放入第一列。缩进 恢复下一行。

如果您不想这样做,请使用此映射::inoremap # X^H#,其中^HCTRL-V CTRL-H一起输入。 使用>>命令时,以#开头的行不会向右移动。