iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vim如何实现复制粘贴
  • 957
分享到

Vim如何实现复制粘贴

2023-06-13 05:06:03 957人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Vim如何实现复制粘贴,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近使用Vim来写博客,发现在Vim中粘贴python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的

这篇文章将为大家详细讲解有关Vim如何实现复制粘贴,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。


最近使用Vim来写博客,发现在Vim中粘贴python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置:
:set noai nosi取消了自动缩进和智能缩进,这样粘贴就不会错行了。但在有的vim中不行,还是排版错乱。
后来发现了更好用的设置:
:set paste进入paste模式以后,可以在插入模式下粘贴内容,不会有任何变形。这个真是灰常好用,情不自禁看了一下帮助,发现它做了这么多事:
textwidth设置为0
wrapmargin设置为0
set noai
set nosi
softtabstop设置为0
revins重置
ruler重置
showmatch重置
fORMatoptions使用空值
下面的选项值不变,但却被禁用:
lisp
indentexpr
cindent
怪不得之前只设置noai和nosi不行,原来与这么多因素有关!
但这样还是比较麻烦的,每次要粘贴的话,先set paste,然后粘贴,然后再set nopaste。有没有更方便的呢?你可能想到了,使用键盘映射呀,对。我们可以这样设置::
:map <F10> :set paste<CR>
:map <F11> :set nopaste<CR>这样在粘贴前按F10键启动paste模式,粘贴后按F11取消paste模式即可。其实,paste有一个切换paste开关的选项,这就是pastetoggle。通过它可以绑定快捷键来激活/取消 paste模式。比如::
:set pastetoggle=<F11>这样减少了一个快捷键的占用,使用起来也更方便一些。
但,这是最方便的吗?Vimer们对高效的追求永无止境。还有其他更好地方法吗?
你可能想到了,vim寄存器。对,使用vim寄存器 “+p 粘贴即可。根本不用考虑是否自动缩进,是否paste模式,直接原文传递!:
"+p要说vim寄存器,就要从vim文件间的复制粘贴说起。
Vim中,若要复制当前行,普通模式下按 yy 即可,在要粘贴的地方按 p 。这是vim将复制内容保存到了自己的寄存器中的缘故。如果在其他地方执行yy,新的内容将覆盖掉原寄存器中内容。如果想保存原寄存器中内容而同时增加新的内容呢?这时就要在yy前增加标签了。标签以双引号开始,跟着的是标签名称,可以是数字0-9,也可以是26个字母,然后就是复制操作,这样就把复制内容保存到该标签寄存器里。通过下面命令显示所有寄存器内容::
:reg其中注意两个特殊的寄存器:”* 和 “+。这两个寄存器是和系统相通的,前者关联系统选择缓冲区,后者关联系统剪切板。通过它们可以和其他程序进行数据交换。
备注:
若寄存器列表里无”* 或 “+ 寄存器,则可能是由于没有安装vim的图形界面所致。Debian/ubuntu下可以通过安装vim-gnome解决。
$ sudo apt-get install vim-gnome选择缓冲区和系统剪切板啥子区别?让我们继续研究。
选择缓冲区和剪切板
不同于windowslinux系统里存在两个剪切板:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。
选择缓冲区是实时的,当使用鼠标或键盘选择内容时,内容已经存在于选择缓冲区了,这或许就是选择缓冲区的由来吧。
使用下面的命令查看选择缓冲区的内容::
$ xclip -out如果没有xclip命令,Debian/Ubuntu下可以通过如下命令安装::
$ sudo apt-get install xclip可以使用鼠标中键或键入Shift+Insert来粘贴选择缓冲区的内容。但对于有些GUI程序,比如gedit,只能通过鼠标中键调用选择缓冲区的内容,使用Shift+Insert的话,调用的是剪切板的内容。
剪切板和Windows的剪切板类似,在选择文字内容后,执行Ctrl + c或在菜单里选择&lsquo;复制&rsquo;的话,这时内容才存放到剪切板里。
使用下面的命令查看剪切板的内容::
$ xclip -out -sel clipboard而使用剪切板的内容,则是Ctrl+v。 但在有些情况下,比如gnome-terminal,不能直接使用Ctrl+c,Ctrl+v,这时就要用Shift+Ctrl+c,Shift+Ctrl+v代替。
原格式粘贴
好了,了解了选择缓冲区和剪切板,下面就是实现保留格式粘贴的完美解决方案:
方案一:
选择文本内容
vim普通模式下按 “*p 将选择缓冲区中内容粘贴进来
方案二:
复制文件内容
vim普通模式下按 “+ p 将剪切板内容粘贴进来
这时,如果要复制的内容也是vim编辑器中的内容,那么如何复制才更方便呢?
vim中的复制
vim有一个可视模式(Visual Mode),在此模式下可以选择区域。可以在普通模式下键入v进入可视模式,也可以个性化一点,键入V进入行可视模式,或者键入Ctrl+v进入列可视模式。这时移动光标就可以选择内容了。注意这时被选内容已经实时保存于选择缓冲区了,当然你也可以键入”+y将此内容也保存到剪切板里,或者”ay将内容保存到标签为a的寄存器中。但要知道,只有前两个中的内容可以在其他程序中使用,而a寄存器中的内容只能在该vim编辑器内使用。
也可以通过鼠标来复制。这里首先要打开鼠标模式。:
:set mouse=a这样在普通模式下可以直接使用鼠标选择区域复制到选择缓冲区。但这种情况下不能复制到剪切板。
若要使用鼠标复制内容到剪切板,则需要做如下设置::
:set mouse=v这种情况下,除了可以像上面一样直接使用鼠标选择区域复制到选择缓冲区以外,还可以在右键菜单中选择“复制”来保存到剪切板里。但新问题又出来了。若显示行号,也会将行号一并选择。你会想到,这好办呀,如果不需要行号的话,在复制前,先执行set nonu来取消行号显示呗。
其实没必要这样,如果不需要复制行号的话,用在可视模式下用键盘来选择不就可以吗?
并且,从上面的讨论,我们不难得出,使用选择缓冲区比使用剪切板要方便的多,可以节省很多步骤。
所以,最终我们得到了vim文件间复制粘贴的完美方案,文件传输的中转使用选择缓冲区。
vim文件间复制粘贴完美方案
在~/.vimrc中增加如下一行::
set mouse=v复制内容到选择缓冲区。
带行号时,使用鼠标选择内容区域。
不要行号,使用 “*yny 复制n行或可视模式下选择。
将选择缓冲区中内容粘贴到vim文件:普通模式下按 “*p 。

--------------------------------------------------------------------------------
补充:
设置vim中默认使用选择缓冲区寄存器 “*:
set clipboard = unnamed则可以直接通过y,p和系统选择缓冲区进行数据交换。

关于“Vim如何实现复制粘贴”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Vim如何实现复制粘贴

本文链接: https://www.lsjlt.com/news/265703.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vim如何实现复制粘贴
    这篇文章将为大家详细讲解有关Vim如何实现复制粘贴,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的...
    99+
    2023-06-13
  • ubuntu如何实现复制粘贴
    ubuntu实现复制粘贴的方法:在KDE/Gnome下:复制命令:Ctrl + C粘贴命令:Ctrl + V在终端下:复制命令:Ctrl + Shift + C 组合键粘贴命令:Ctrl + Shift + V 组合键在控制台下:复制命令:...
    99+
    2024-04-02
  • javaScript如何实现复制粘贴功能
    小编给大家分享一下javaScript如何实现复制粘贴功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • vue如何实现粘贴复制功能
    这篇文章主要介绍了vue如何实现粘贴复制功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。引言项目中如果实现粘贴复制功能,目前市面上共有三种方法,均有利有弊,大家可以根据自己...
    99+
    2023-06-29
  • Word如何复制粘贴
    这篇文章的内容主要围绕Word如何复制粘贴进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!复制粘贴是编辑文档时使用频率最高的Word功能之一。像Ctr...
    99+
    2023-06-05
  • macbookpro如何复制粘贴
    本文小编为大家详细介绍“macbookpro如何复制粘贴”,内容详细,步骤清晰,细节处理妥当,希望这篇“macbookpro如何复制粘贴”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-12-28
    macbookpro
  • 如何用python实现复制粘贴功能
    目录楔子实现复制实现粘贴macOS实现复制粘贴Linux实现复制粘贴楔子 pandas里面有这么一个方法:pd.read_clipboard,可以根据你复制的内容生成DataFra...
    99+
    2024-04-02
  • jQuery如何实现复制到粘贴板功能
    这篇文章主要为大家展示了“jQuery如何实现复制到粘贴板功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现复制到粘贴板功能”这篇文章吧。用...
    99+
    2024-04-02
  • Linux vim删除、复制、粘贴快捷键分享
    本篇内容介绍了“Linux vim删除、复制、粘贴快捷键分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!删除x  &n...
    99+
    2023-06-12
  • html如何禁止复制粘贴
    这篇文章给大家分享的是有关html如何禁止复制粘贴的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在html中,可以利用touch-callout和user-select属性来属性禁止复制粘贴功能,只需要设置“us...
    99+
    2023-06-15
  • JS代码如何实现粘贴板复制功能
    这篇文章将为大家详细讲解有关JS代码如何实现粘贴板复制功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用剪贴板是一项基本技能。作为码农都应知道, Tab , Ctrl...
    99+
    2024-04-02
  • cad如何复制粘贴图形
    这篇“cad如何复制粘贴图形”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“cad如何复制粘贴图形”文章吧。cad复制粘贴图形...
    99+
    2023-07-02
  • js 剪切、复制、粘贴功能实现
    针对现代浏览器实现(Navigator.clipboard) Navigator.clipboard API可以用来访问系统剪贴板,可以实现【剪切、复制、粘贴】功能。该 API 被设...
    99+
    2023-05-18
    js 剪切 js复制 js粘贴
  • vue实现点击复制到粘贴板
    本文实例为大家分享了vue实现点击复制到粘贴板的具体代码,供大家参考,具体内容如下 背景: 业务开发中遇到,点击复制内容到粘贴板的需求,记录一下 效果: 关键代码: copyTex...
    99+
    2024-04-02
  • Webjs实现复制文本到粘贴板
    本文实例为大家分享了Web js实现复制文本到粘贴板的具体代码,供大家参考,具体内容如下 一、简述 记--简单用js实现将元素的文本内容复制到粘贴板。 二、效果 三、代码 <...
    99+
    2024-04-02
  • windows caj文件如何复制粘贴
    今天小编给大家分享一下windows caj文件如何复制粘贴的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。caj文件复制粘贴...
    99+
    2023-07-04
  • 详解如何使用Python实现复制粘贴的功能
    目录楔子Windows 上的复制粘贴macOS 上的复制粘贴Linux 上的复制粘贴pyperclip 实现复制粘贴楔子 pandas 里面有一个 pd...
    99+
    2023-01-03
    Python实现复制粘贴功能 Python复制粘贴 Python复制 Python粘贴
  • plsql如何复制粘贴一行数据
    在PL/SQL中,可以使用INSERT INTO语句来复制粘贴一行数据。假设有一张名为table1的表,其中有一行数据需要复制粘贴到...
    99+
    2024-04-09
    plsql
  • 怎么用python实现复制粘贴功能
    这篇文章主要介绍“怎么用python实现复制粘贴功能”,在日常操作中,相信很多人在怎么用python实现复制粘贴功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用python实现复制粘贴功能”的疑惑有所...
    99+
    2023-06-08
  • jQuery如何监听复制粘贴事件?
    这篇文章将为大家详细讲解有关jQuery如何监听复制粘贴事件?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery 监听复制粘贴事件 jQuery 提供了多种方法来监听复制粘贴事件。以下是几种最常用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作