linux vim粘贴和复制文件,【linux】vim怎么粘贴其他地方复制的代码?

我在网页上复制了一段代码,想粘贴到vim中。

第一次粘贴的时候,总会丢失复制内容的起始几个字符,紧接着第二次粘贴则正常,是什么原因?

下面是

Hello, world!为粘贴内容的测试结果,共粘贴两次,可以看到,第一次(前面两行)很奇怪,第二次(第三行)正常。

1

2 , world!

3

Hello, world!

左侧的1 2 3为行号

回答

简单原因: 你没有进入编辑模式就试图编辑文件, 所以产生了你意想不到的结果.

具体原因:

你打开了 vim, 此时 vim 处于 正常模式.

你粘贴了

Hello, world!, 相当于向 vim 申请执行该指令, vim 会顺次执行. 在正常模式下, < 和 > 表示缩进, 但因为你没有选中文本, 因此什么也没有发生, 两个中括号中间的 title 是无效的. Hell 也不会有具体效果. 但执行到 o 时, o 表示在光标所在行的下一行进入 插入模式, 剩下的内容被当做插入文本处理. 因此你文件中的第一行是空白行, 第二行是 o 后面的内容, 即 , world!

因为上面的操作已经使 vim 进入 插入模式, 且你并未点击 ESC 退出该模式, 因此在你继续进行第二次粘贴的时候, 就会直接执行插入操作, 这行被完整的插入进去了.

疑问:

如果两次粘贴中间没有其他操作, 那么第二次粘贴时不应该会另起一行. 我猜测你应该敲了一个回车符后进行的粘贴.

建议:

了解下 vi 操作基础.

先按下 insert 进入编辑模式,然后按 shift+insert 粘贴内容。

打开 vim 后默认是命令模式。

设置粘贴模式

如果要保持原样粘贴,在命令模式下按英文:,冒号出现在左下角,此时输入set paste来设置。

进入编辑模式

i 在光标处开始进入编辑模式

a 从光标位置的下一个字符开始(没有内容时无效)进入编辑模式

o 光标移动到下一行行首并进入编辑模式

进入编辑模式,后直接使用shift+insert进行粘贴。

如果再需要回到命令模式,按 Esc。

可能一部分字符被當成vim指令了

我都是 :r!cat 粘貼的

在设置中打开clipboard。就可以和外界共享粘贴板了。

用”+y复制vim里的内容,直接在外面粘贴。

外面赋值的内容,用”+p粘贴在vim编辑的文件中。

使用键盘enter下面的文档键+p

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值