vim:autoindent不工作

问题描述 投票:15回答:8

我的自我指导无法正常工作,任何诊断测试都能解决这个问题?

我的“:set”是:

:set --- Options --- cindent laststatus = 2 scroll = 17 tabstop = 4 window = 36 filetype = cpp number 聪明的ttyfast helplang = en paste syntax = cpp ttymouse = xterm2 退格=缩进,EOL,开始 fileencoding = UTF-8 fileencodings = ucs-bom,utf-8,默认,latin1 printoptions = paper:letter runtimepath =〜/ .vim,/ var / lib / vim / addons,/ usr / share / vim / vimfiles,/ usr / share / vim / vim72,/ usr / share / vim / vimfiles / af ter,/ var / lib /vim/addons/after,~/.vim/after suffixes = .bak,〜,.swp,.o,。info,.aux,。log,.dvi,.bbl,.blg,.brf,.cb, .IND,.IDX,.ilg,.INX,.OUT,.TOC

vim vi
8个回答
10
投票

尝试:

:set ai

要么:

:set autoindent

找到有关自动缩进的更多信息:

:h ai

否则,它可能是文件类型检测的东西。


7
投票

您应该关闭smartindent并使用:filetype indent oncindent(似乎也设置)。


6
投票

我有同样的问题,这些设置修复了它。

filetype on
filetype plugin on
filetype indent on

2
投票

这是测试您是否具有正确配置的一种方法,然后保留您的配置,以便Vim始终如此运行。 This font表示应按字面输入的文本,但<CR>表示按“Enter”或“Return”键。

  • 使用新的主目录创建新的系统用户。
  • 启动Vim。应设置所有设置,但默认情况下它们随Vim一起提供。
  • 打开一个文件,比如test.txt。
  • 确保启用了autoindent(:set ai?<CR>
  • 证明autoindent没有发生: 键入一个或两个空格,然后按Enter键。 当光标前进到下一行时,它应该返回到列1,即最左列。
  • 打开autoindent(:set ai<CR>
  • 确保启用了autoindent(:set ai?<CR>
  • 证明自动发生: 键入一个或两个空格,然后按Enter键。 当光标前进到下一行时,它仍应位于同一列中。
  • :mkvimrc<CR>坚持自我约束。

希望有所帮助!以下是一些其他说明:

  • 这些说明可能特定于从左到右的语言环境。
  • Here's my vimrc

2
投票

如果其他人面临同样的问题,我有一个类似的问题,以上没有修复。对我来说错误的是标签解释。这是使其工作的设置:

set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent

如果缩进是正确的,检查缩进时,我添加了以下内容,仍然在我的vimrc文件中:

" helper for indent mistake
set list listchars=tab:»·,trail:·

如果我的缩进是错误的,那么显示“»”而不是常规的“·”。非常便利。希望能帮助到你。


0
投票

我有同样的问题,我尝试了很多命令,都失败了。 最后,我使用以下命令,它的工作原理: autocmd VimEnter * set autoindent 这不是一种优雅的方法,但它确实有效。


0
投票

我在indentexpr中有一个陈旧的函数,它在更改文件类型后仍然存在。这最终为我修好了:

:set indentexpr=

0
投票

“'自动添加'选项在'粘贴'选项设置时重置”。因此,请尝试从您的设置中删除“粘贴”(vim-options)。

© www.soinside.com 2019 - 2024. All rights reserved.