我现在正在编辑一个写在vimema中的文件。从一个切换到另一个时,我遇到了一个奇怪的问题:
在代码中的一些地方,看起来是随机的,emacs代码中有相当于两个选项卡的选项卡(在emacs和python中都是可视的)。但是,在vim中,这些制表符只显示为一个制表符。你知道吗
当I:set list时,几个行的示例将显示为:
for i in range(total_pairs):$
^Iwhile 1:$
^I rint = random.randint(0,total_pairs-1)$
^I if(trialData[rint].cueDir == FORWARD)$
^I^ItrialData[rint].cueDir=BACKWARD$
^I^Ibreak$
但它应该显示为:
for i in range(total_pairs):$
while 1:$
rint = random.randint(0,total_pairs-1)$
if(trialData[rint].cueDir == FORWARD):$
trialData[rint].cueDir = BACKWARD$
break$
代码仍然以任何一种方式运行,但读起来相当烦人。你知道吗
当我运行:retab时,它用一个选项卡替换每个^I,而不是它应该替换的两个选项卡。如何将每个^I字符替换为两个制表符而不是一个制表符。还有,为什么会这样?你知道吗
谢谢。你知道吗
:retab
用tabstop
空格替换每个制表符(即^I
)。在您的例子中,tabstop
显然被设置为4,所以Vim用4个空格替换文件中的每个^I
。如果希望:retab
用8个空格替换每个^I
,请在:retab
之前使用set tabstop=8
。你知道吗为了解决实际问题,不要在Python中使用混合缩进;将Emacs和Vim都设置为使用空格作为制表符。你知道吗
有关详细信息,请参见
:h expandtab
、:h tabstop
、:h softtabstop
和:h shiftwidth
。你知道吗简单的(也是推荐的)答案是用4个空格替换每个选项卡,并将emacs和vim设置为在按下tab时使用4个空格。你知道吗
相关问题 更多 >
编程相关推荐