这是我目前的状态。vimrc:
cat ~/.vimrc
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab
set nu
set autoindent
set cindent
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
我正在调试其他人的代码,当我插入新行时,它似乎自动与下一行缩进。然而,当我执行python程序时,它会抱怨。例如,我在下面添加了一个print语句:
for i, third in enumerate(third_list):
j = i % 4
third_group4[j] = third
print('i, j', i, j)
if j == 3:
....
印刷品似乎与其他线条很协调,但它抱怨:
python test.py
File "test.py", line 156
if j == 3:
^
IndentationError: unexpected indent
下一行收到了有关缩进的投诉。我手动检查发现,与“if”前面原来的8个前导空格不同,前4个空格是一个制表符,也是4个空格长。1-tab+4空格的长度与8空格的长度相同,但这就是它抱怨的原因
我测试了一些其他的print语句,当我插入print语句时,它似乎总是影响下一行
我怎样才能取消这个?我不想每次对代码做一点更改时都手动修复缩进。我在Centos 7
首先,让我们从
vimrc
中删除冗余行:其次,让我们修复编码部分:
:help 'termencoding'
从:help 'encoding'
获取其值,因此如果希望两个选项具有相同的值,则只需要“set encoding=utf-8
”请注意,Vim从您的环境中获取其
'encoding'
的默认值,因此最好将其正确设置,而不是对单个程序进行黑客攻击,使其按您想要的方式工作如果
'encoding'
是utf-8
,那么:help 'fileencodingd'
的默认值是utf-8
很好的,并且已经覆盖了很多领域。添加本地编码比重新定义整个过程更有意义和规范化选项名称:
现在我们可以把注意力转移到剩下的
set cindent
是专门为C语言设计的,因此如果您正在处理Python代码,那么它是无用的,因此可以安全地删除set noexpandtab
明确告诉Vim使用硬制表符。这条线有两个问题:默认情况下
:help 'expandtab'
是禁用的,因此手动执行没有意义实际上,您需要的是空格,而不是制表符,因此正确的值应该是
set expandtab
以下是您的
vimrc
在这一阶段的看法:这似乎不会影响示例代码的格式
注意,Vim附带了一个内置的文件类型检测机制,其中包括为Python设置标准缩进规则。只需将以下行添加到
vimrc
即可从中获益:见
:help :filetype
相关问题 更多 >
编程相关推荐