自从第一天使用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
谢谢!
答案 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#
,其中^H
与CTRL-V CTRL-H
一起输入。
使用>>
命令时,以#
开头的行不会向右移动。