0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虚拟机:Vim 复制粘帖格式错乱问题的解决办法

如意 来源:CSDN 作者:CaspianSea 2020-06-22 09:43 次阅读

有时候,复制文本(尤其是代码)到 Vim,会出现格式错乱的问题。看样子,应该是自动缩进惹得祸。本文不去深究原因,直接给出解决方法。

1. paste 模式

运行如下命令,进入 paste 模式:

:set paste

进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按 《ESC》 进入普通模式并执行如下命令结束 paste 模式:

:set nopaste

显然,这样非常麻烦。下面我们进行改进。

2. 快捷键一

我们可以利用设置快捷键来简化上面的两个命令。在 ~/.vimrc 中加入如下两行:

map 《F10》:set paste《CR》

map 《F11》:set nopaste《CR》

这样,在普通模式下按 F10 (你也可以用自己喜欢的按键)就会进入 paste 模式,按 i 进入插入模式后粘帖,然后按 《ESC》 回到普通模式,再按 F11 结束 paste 模式。

这样虽然方便了,但占用了两个按键。下面我们继续改进。

3. 快捷键二

在 ~/.vimrc 中加入如下内容:

set pastetoggle=《F11》

这样就可以把上面的 F10 和 F11 合并为一个快捷键来切换 paste 模式了。

还有更好的办法么?当然!

4. Vim 寄存器

关于 Vim 寄存器的详细信息请执行命令 “:help registers” 查看。

对于“剪切板”这个概念,Linux 下有两个东西:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。鼠标或键盘选择内容时,内容实时进入缓冲区,然后按中键将内容插入光标所在位置;鼠标或键盘选择内容后,按Ctrl-C(或Shift-Ctrl-C)或菜单中的“复制”,内容进入剪切板,然后按Ctrl-V(或Shift-Ctrl-V)或菜单中的“粘帖”将内容插入光标所在位置。关于这两者的详细信息,请自行搜索,此处不深究。

Vim 的寄存器 “* 对应系统缓冲区, 寄存器 “+ 对应系统剪切板。

如果你是把选择的内容(在系统缓冲区中)粘帖到 Vim ,只需在普通模式下执行如下命令:

“*p

对应的,如果你是把复制的内容(在系统剪切板中)粘帖到 Vim,只需在普通模式下执行如下命令:

”+p

怎么样?格式没有错乱了吧?

这样虽然简便很多了,但还是需要输入三个字母,并且这三个字母都得使用右手小拇指输入,甚至其中的两个字母还需要 shift 键配合!

还有更简单的办法。

5. Vim 寄存器二

在 ~/.vimrc 里加入如下内容:

set clipboard=unnamed

然后只需在普通模式下按 p 即可把系统缓冲区中的内容粘帖到 Vim 中,就像粘帖用 yy 命令得到的内容一样,并且格式不错乱。

如果把上面的一行换成如下内容:

set clipboard=unnamedplus

普通模式下按 p 粘帖的内容就是系统剪切板里的内容了。

这已经足够简便了。在搜索此问题的过程中,我还看到了另外一些办法。

6. 快捷键三

在 ~/.vimrc 里加入如下内容:

inoremap 《S-Insert》《ESC》:setl paste《CR》gi《C-R》+《ESC》:setl nopaste《CR》gi

这样,你就可以在插入模式下使用 Shift-Insert 快捷键在粘帖系统剪贴板中的内容了。

把上面一行替换成如下内容同样可以达到相同的效果:

inoremap 《S-Insert》《ESC》“+p`]a

注意,这可是在插入模式下哦!比起第 5 节提到的方法,这种方法省去了一次 《ESC》 按键进入普通模式和一次 i 按键重新回到插入模式。

至此,你需要做的只是:

a. 复制你想要的内容;

b. 回到 Vim 并按 Shift-Insert 快捷键;

c. 继续编辑其他内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208802
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28040
收藏 人收藏

    评论

    相关推荐

    【OK210试用体验】第二篇 虚拟机VM安装及Ubuntu的安装、配置

    geany,该软件我们可以再软件中心搜索到。接下来我们打开虚拟机的终端,打开终端会出现如下界面:在终端内我们可以进行代码的编写,编译和运行。说到代码编写我们会用到VIM,在该界面光标处输入“sudo
    发表于 08-07 21:31

    【OK210试用体验】第二篇 虚拟机VM安装及Ubuntu的安装、配置

    geany,该软件我们可以再软件中心搜索到。接下来我们打开虚拟机的终端,打开终端会出现如下界面: 在终端内我们可以进行代码的编写,编译和运行。说到代码编写我们会用到VIM,在该界面光标处输入“sudo
    发表于 09-26 22:30

    虚拟机和主机共享文件失败的原因与解决

    CentOS虚拟机和主机共享文件失败的解决办法
    发表于 03-25 10:01

    如何解决虚拟机Ubuntu无法联网的问题

    做嵌入式linux学习 需要用到虚拟机我遇到的问题是虚拟机网络找不到 网卡的设备,只剩下了一个环路 背景是 我之前用一直没有问题像这样 剩下 这个 lo: flags=73 mtu 65536我的解决办法是 挂起
    发表于 12-23 08:22

    ESXi虚拟机模块CPUID打开电源失败怎么解决

    machine configuration在没有虚拟化msg.inter.hvhwmmu的情况下继续?是否解决办法:升级虚拟机的硬件版本即可解决关机状态下进行如下操作:...
    发表于 12-31 07:44

    虚拟机打开电源报错的问题及解决办法描述

    1、 问题描述虚显示孤立的,打开电源报错2、 解决方法2.1、方法一将已孤立虚拟机从清单中移除,在存储上找到.vmx配置文件重新注册虚拟机信息。2.2、方法二如果虚拟机文件被锁定,方
    发表于 12-31 07:41

    关于HarmonyOS虚拟机网络问题的解决办法分享

    问题1.官方Ubuntu镜像有人装了就能用,有人不行,比如我,不会自动联网。2.联网成功后不能固定ip,导致映射网络盘每次都要重新搞一遍。3.打开虚拟机经常是黑屏,重置网络规范治标不治本。4.固定
    发表于 05-24 15:08

    虚拟机:Linux设置core dump文件名的格式

    虚拟机:Linux设置core dump文件名的格式
    的头像 发表于 06-22 17:50 2895次阅读
    <b class='flag-5'>虚拟机</b>:Linux设置core dump文件名的<b class='flag-5'>格式</b>

    基于复制技术的虚拟机容灾方案

    现在各个大企业的计算虚拟化程度都很高了,因此,很多关键的业务,如Oracle数据库都跑在虚拟机上,特别是VMware虚拟机上。但是,虚拟机上的数据保护,和物理
    的头像 发表于 10-21 11:29 3510次阅读
    基于<b class='flag-5'>复制</b>技术的<b class='flag-5'>虚拟机</b>容灾方案

    ESXi虚拟机模块CPUID打开电源失败

    machine configuration在没有虚拟化msg.inter.hvhwmmu的情况下继续?是否解决办法:升级虚拟机的硬件版本即可解决关机状态下进行如下操作:...
    发表于 01-10 15:02 1次下载
    ESXi<b class='flag-5'>虚拟机</b>模块CPUID打开电源失败

    vsphere Client虚拟机开启电源提示发生常规错误:目标计算机积极拒绝解决办法

    vsphere Client虚拟机开启电源提示发生常规错误:目标计算机积极拒绝解决办法解决办法:查看vcenter服务器上的(本地)服务列表内VMware vCenter workflow manager是否运行状态没有运行就手
    发表于 01-11 12:38 2次下载
    vsphere Client<b class='flag-5'>虚拟机</b>开启电源提示发生常规错误:目标计算机积极拒绝<b class='flag-5'>解决办法</b>

    误删除KVM虚拟机的数据恢复案例

    服务器上的KVM虚拟机被误操作删除,每台虚拟机包含一个qcow2格式的磁盘文件和一个raw格式的磁盘文件,需要恢复raw格式的磁盘文件,
    的头像 发表于 04-12 13:56 681次阅读
    误删除KVM<b class='flag-5'>虚拟机</b>的数据恢复案例

    虚拟机ubuntu怎么联网

    与外部网络通信。本文将详细介绍虚拟机Ubuntu的网络连接方法以及一些常见的网络问题解决办法。 一、虚拟机网络概述 虚拟机的网络连接有多种方式,包括桥接模式(Bridge)、NAT模式
    的头像 发表于 12-27 16:51 921次阅读

    服务器数据恢复—KVM虚拟机raw格式磁盘文件数据恢复案例

    服务器数据恢复环境: 一台服务器安装Linux操作系统+EXT4文件系统。服务器上运行数台KVM虚拟机,每台虚拟机包含一个qcow2格式的磁盘文件和一个raw格式的磁盘文件。
    的头像 发表于 05-17 13:33 398次阅读
    服务器数据恢复—KVM<b class='flag-5'>虚拟机</b>raw<b class='flag-5'>格式</b>磁盘文件数据恢复案例

    虚拟机数据恢复—KVM虚拟机被误删除的数据恢复案例

    虚拟机盘:系统盘(qcow2)+数据盘(raw) 文件系统:EXT4 主要数据:程序代码 虚拟机故障: KVM虚拟机被删除,需要恢复raw格式的磁盘文件。
    的头像 发表于 08-07 13:33 355次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—KVM<b class='flag-5'>虚拟机</b>被误删除的数据恢复案例