粘贴到VIM时缩进不正确

16 投票
4 回答
5789 浏览
提问于 2025-04-18 02:02

我现在对VIM还不太熟悉,但我已经能用得不错了。我在我的语法文件夹里使用了python.vim。不过,每次我从外面复制粘贴Python代码到VIM里时,缩进就会变得不一样。VIM的语法设置是用一个制表符(Tab),宽度是8个字符,而我粘贴的文本是用4个空格。你可以在这张图片上看到这个问题:

VIM粘贴的代码

是语法文件有问题吗?还是我应该调整一些设置呢?

4 个回答

1

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。为了帮助大家更好地理解这些问题,很多人会在网上提问,比如在StackOverflow上。

在这些提问中,通常会包含一些代码示例,像是

" Correct bad indent while pasting.
nnoremap <Leader>p p=`]
nnoremap <Leader>P P=`]
这样的占位符。这些代码块是用来展示具体的代码片段,帮助大家更清楚地理解问题所在。

总之,编程的学习过程充满了挑战,但通过提问和分享,我们可以更快地找到解决方案,提升自己的技能。

2

试着把 tabstopshiftwidth 都设置为 4

set tabstop=4
set shiftwidth=4
7

有时候在使用vim的时候,你可以先用鼠标选中你复制的代码,然后按下

=

这时代码就会按照你的设置重新格式化。

15

你可能是把vim设置成把空格转换成制表符了。试着在你的 .vimrc 文件里设置:

tabstop=4 shiftwidth=4 expandtab

在你粘贴之前,先执行

:set paste

然后插入,粘贴,再执行

:set nopaste

这里有一篇关于 粘贴模式 的好文章。

撰写回答