zoukankan      html  css  js  c++  java
  • Vim实用技巧笔记09

    复制与粘贴

    • 删除 delete
    • 复制 yank
    • 粘贴 put
    • :registers命令可以查看寄存器情况

    通常情况下,在讨论剪切、复制与粘贴这3组操作时,指的都是操作系统剪贴板。不过,在Vim的术语里,我们操作的是寄存器,而并非剪贴板

    寄存器

    Vim的删除、复制与粘贴命令都会用到众多寄存器中的某一个。我们可以通过给命令加"{register}前缀的方式指定要用的寄存器。若不指明,Vim将缺省使用无名寄存器

    让我们看一些引用寄存器的例子,如果我们想把当前单词复制到寄存器a中,可执行 "ayiw,或者,可以用 "bdd,把当前整行文本剪切至寄存器b中。在此之后,我们既可以输入 "ap粘贴来自寄存器a的单词,也可使用 "bp命令粘贴来自寄存器b的一整行文本,两者互不干扰。

    无名寄存器 ""

    • x s d{motion} c{motion} y{motion}都会覆盖无名寄存器中的内容

    复制专用寄存器 "0

    • y{motion}命令专用的寄存器

    黑洞寄存器 "_

    • 有去无回,删除文本且不保存任何副本

    系统剪切板 "+ 选择专用寄存器 "*

    到目前为止,我们所讨论的寄存器都是Vim内部的。如果想从Vim复制文本到外部程序(反之亦然),则必须使用系统剪贴板

    • "+p 从外部程序中用剪切或者复制命令获取了文本,粘贴到Vim内部
    • C-r+ 插入模式下的命令,功能同上

    linux X11视窗系统支持主剪切板 primary

    Windows 和 Mac 没有主剪切板

    • "+ "* 都代表系统剪切板

    表达式寄存器 "=

    • 可以计算数学公式
    • 还可以使用Vim特定的函数和运算符。例如通过表达式寄存器来得到环境变量的值(例如"=$HOME)
    • 输入表达式,然后 p 就可以了,插入模式下,C-r= 计算后值直接出现在文本中

    其他寄存器(只读寄存器)

    系统粘贴的一些小问题

    • 如果vim没有集成系统剪贴板功能
    • set autoindent 设置之后,从系统粘贴代码到vim可能会出现代码格式,缩进出现问题
    • 粘贴之前使用:set paste命令,然后粘贴就会没有类似问题
  • 相关阅读:
    使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
    从单幅深度图识别人体姿态
    工作中编写存储过程小记
    【积累】根据CheckBox的不选中 ,用JQuery 清除 RidaoButtonList 的选中项
    【积累】LinqToSql复合查询结果转DataTable数据
    MSSSQL 脚本收藏
    VS2010历史记录清理
    PowerDesigner16工具学习笔记-建立CDM
    Android 安装过程中的问题
    Unity3D集成SVN进行版本控制
  • 原文地址:https://www.cnblogs.com/rookieagle/p/15659994.html
Copyright © 2011-2022 走看看