专栏首页黑泽君的专栏粘贴到vi/vim的代码,怎样避免向右不断缩进,保持原来的格式?解决vi/vim在粘贴中会在行首多很多缩进和空格的问题。

粘贴到vi/vim的代码,怎样避免向右不断缩进,保持原来的格式?解决vi/vim在粘贴中会在行首多很多缩进和空格的问题。

SecureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器。所以当你的服务器上的vi/vim设置为autoindent的话,在 i 模式下,那么它会将SecureCRT传输而来的这些字符串再进行一下缩进。若你拷贝的文本中已经有表示缩进的空格或者制表符的话,它们也会被当成字符串,而被缩进。

原因:一般的vi/vim都默认设置为set nopaste。

解决办法: 1,在拷贝前输入:set paste        (这样的话,vi/vim就不会启动自动缩进,而只是纯拷贝粘贴。) 2,拷贝完成之后,输入:set nopaste   (但是在粘贴插入模式下代码是不会自动按格式缩进的,需要使用nopaste设置回来,即关闭paste。)

注意:在Android Studio中,把缩进优美的代码直接ctrl+c,ctrl+v到Vim的时候,也会出现这种情况!解决方法一样!

设置前的粘贴效果:

设置set paste后的效果:

附:paste相关知识如下:

 'paste'  布尔型  (缺省关闭,即默认是关闭的)

全局功能

注意:Vi 无此功能。

将 Vim 切换到粘贴模式。可用于从一个窗口剪切或复制文本并粘贴到 Vim。它的使用会避免一些意想不到的效果。

设置此选项可用于终端上运行的 Vim,因为那里 Vim 没法区别输入和粘贴的文本。

在 GUI 里,Vim 知道何者来自粘贴,即使不打开 'paste' 也基本上不会做错。对 Vim 能自己处理鼠标点击的终端也是如此。

启动 GUI 时复位本选项。所以如果你在 .vimrc 里置位它,可以使它在终端里工作,但不是在 GUI 里。

在 GUI 里置位 'paste' 有副作用,例如:Paste 工具栏按钮在插入模式下不能工作,因为它使用了映射。

打开 'paste' 选项时 (包括它本来就是打开的也会如此。)

paste模式主要帮我们做了如下事情:

  • textwidth    设置为0
  • wrapmargin  设置为0
  • autoindent   重置(即被复位)
  • smartindent    重置(即被复位)
  • set noai
  • set nosi
  • softtabstop  设置为0
  • revins     重置(即被复位)
  • ruler       重置(即被复位)
  • showmatch       重置(即被复位)
  • formatoptions   使用空值

下面这些选项保持原来的值,但没有实际的效果:

  • lisp
  • indentexpr
  • cindent

 注意: 打开 'paste' 选项时如果你开始编辑别的文件,模式行或者自动命令可能会再次改变这些设置,从而在粘贴文本时造成麻烦。这时,你可能需要再次置位 'paste' 选项。 'paste' 选项复位时,上面提到的选项被复原为上次 'paste' 从关到开时的设置。置位 'paste' 之前复位 'paste' 没有任何效果。因为 'paste' 激活时不能用映射,'pastetoggle' 选项可以用来指定切换 'paste' 选项的热键。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • bookStore商城开发文档

    用户通过访问http://www.bookStore.com页面可能访问到书城首面。

    黑泽君
  • Java中设计模式的概述(设计模式是经验的总结)

    设计模式 A:设计模式的概述(设计模式是经验的总结)     设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代...

    黑泽君
  • linux的网络奇怪问题

    黑泽君
  • 分析数据必须掌握的概率分布

    Data Science (数据科学)作为现如今最炙手可热的领域之一,越来越受到人们的关注。而数据分析背后充满了概率统计的知识。因此,打下良好的概率论基础是必须...

    小白学视觉
  • 超融合概述

    现在是数据时代,大数据技术非常火。大数据的基石是基础架构,也可以说是云计算。超融合是云计算的一个细分场景。在这个以大数据和云计算为主题的公众号中来点超融...

    大数据和云计算技术
  • 关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析

    1、问题:mysql 遇到某些中文插入异常 最近有同学反馈了这样一个问题: ? 上述语句在脚本中 load 入库的时候会 hang 住,web 前端、命令行操作...

    用户1177713
  • 亿级流量电商详情页系统实战:缓存架构+高可用服务架构+微服务架构

    在完全真实的大型电商详情页系统架构下,全流程实战了整套微服务架构,包含了基于领域驱动设计进行微服务建模、Spring Cloud、基于DevOps的持续交付流水...

    李鹏
  • RecyclerView+SnapHelper实现无限循环筛选控件

    1.选项由后台配置,也就是控件要动态设置宽度;2.每次滑动都要左对齐,并默认选中最左边选项;3.控件可以无限循环。

    砸漏
  • 物料管理小能手(统计不重复数据)

    平时的仓库物料管理,有很多种材料要进进出出。 如果是用Excel做手工台账的,可以看看我的分享! 我有手工台账如下: ? 小本买卖,上面都是便利店的王牌销售...

    用户1332619
  • Arctan的快速近似算法

    \(arctan\)的近似计算本质上是在所需精度范围内对\(arctan\)曲线进行拟合,比较直接的想法是泰勒展开,

    李拜六不开鑫

扫码关注云+社区

领取腾讯云代金券