我一直在尝试在 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.
)