Bash 中不必要的缩进

Bash 中不必要的缩进

我一直在尝试在 bash 中将文本从一个文件粘贴到另一个文件。我正在使用 Putty。

更清楚一点,我有一个文件hotel.txt,里面有一些缩进的文本行,因此有制表符和空格。当我将其中几行缩进的文本粘贴到另一个使用创建的文件中时vi,它们会在每个文本行上多加一个制表符。

当我使用鼠标右键单击粘贴时,所有文本都会自动缩进,并且每行都会有一个额外的制表符。

有人有解决办法吗?

我已尝试过:set paste,但显然对我没有作用。

答案1

在 中时vi,使用 进入退出模式Esc。然后说:set paste

现在您应该能够粘贴未修改的文本。

您可以'paste'通过说 来关闭:set nopaste

为了使更改永久生效,您可以添加:set paste到您的${HOME}/.vimrc

答案2

发生这种情况是因为您没有复制第一行的缩进,或者因为您粘贴在已经缩进的位置。

答案3

这不是一个确切的答案,但你可以通过这种方式在开头删除多余的标签

:%s/^^I//g

其中 ^I 是制表符,您可以按 Cv 然后按 tab 键来输入它。

(或输入以下序列

gg    "goto top
c-v   "visual selection
S-G   "goto end of file
<<    " indent visual selection one to the left.

相关内容