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命令,然后粘贴就会没有类似问题
  • 相关阅读:
    React生命周期, 兄弟组件之间通信
    React组件式编程Demo-用户的增删改查
    React之this.refs, 实现数据双向绑定
    CCF CSP 201812-4 数据中心
    CCF CSP 201812-4 数据中心
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    Codeforces 1245C Constanze's Machine
    Codeforces 1245C Constanze's Machine
    CCF CSP 201712-4 行车路线
  • 原文地址:https://www.cnblogs.com/rookieagle/p/15659994.html
Copyright © 2011-2022 走看看