首页  >  问答  >  正文

Vim粘贴代码时,显示层级缩进,如何解决

滿天的星座滿天的星座2734 天前637

全部回复(4)我来回复

  • 淡淡烟草味

    淡淡烟草味2017-05-16 16:42:14

    粘贴之前:
    :set paste
    粘贴完了:
    :set nopaste


    另一个很棒的方法:
    :r! cat
    然后用
    shift+insert
    或其他方式粘贴代码,然后
    ctrl+d
    完成输入。

    Source

    回复
    0
  • 滿天的星座

    滿天的星座2017-05-16 16:42:14

    我一直用另外一种更好的方式:

    augroup PASTETOGGLE
      autocmd! InsertEnter * setlocal paste
      autocmd! InsertLeave * setlocal nopaste
    augroup END
    

    这样的话在插入模式中粘贴的时候根本不需要设置任何东西,并且也不需要替代的按键组合。

    补充:我忘了说这个方法的副作用,它会导致在插入模式下的 'autoindent' 和 'smartindent' 等选项复位,所以等于取消了自动缩进,因此请有选择的使用。

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 16:42:14

    使用vi粘贴代码就OK了

    回复
    0
  • 阿神

    阿神2017-05-16 16:42:14

    还可以这样操作 “+p 来粘贴;
    为了方便我做了个映射 nnoremap <leader>p "+p;
    输入 :reg 查看寄存器中保留的东西;
    先选中部分字符, 还后 ”+y 可以把选中的部分复制到 系统剪贴板;
    参考 Accessing the system clipboard How to use vim registers?

    回复
    0
  • 取消回复