解决粘贴到vim缩进错乱问题

303 字
2 分钟
解决粘贴到vim缩进错乱问题

遇见#

当我使用vim,想要粘贴下面这段脚本到 xx.sh 文件中

#!/bin/bash
if [ $1 ]
then
if [ $1 == "help" ]; then
echo -e "\033[37m pay 参数1 [参数2] \033[0m"
else
if [ $2 ]; then
filename = $2
fi
fi
else
echo -e "\033[37m 缺少关键词,通过'pay help'查看帮助信息 \033[0m"
fi

却出现了错乱,如下图所示

缩进乱掉
缩进乱掉

分析#

vim 没有相应的程序来处理这个从其他应用复制粘贴的过程,所以Vim通过插入键盘输入的buffer来模拟这个粘贴的过程,这个时候Vim会以为这是用户输入的。

所以问题是:当上一行结束,光标进入下一行时Vim会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。

解决问题#

经过一番google,发现vim提供了 paste 选项,进入 paste 模式后,就可以正常缩进了。

Terminal window
## 进入 paste 模式
:set paste
## 退出 paste 模式
:set nopaste

缩进正常
缩进正常

如果不想每次都执行这个命令,可以在 ~/.vimrc 中添加一行配置 set pastetoggle=<F12> ,这样就可以通过F12快速在paste模式中切换。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
解决粘贴到vim缩进错乱问题
https://fanrich.eu.org/posts/程技/linux/解决粘贴到vim缩进错乱问题/
作者
richfan
发布于
2017-06-01
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
richfan
Hello, I'm richfan.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
779
分类
8
标签
138
总字数
3,267,679
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录