zoukankan      html  css  js  c++  java
  • 寄存器操作

    寄存器操作

    Vim可以将不同字段剪切或复制到不同寄存器中,您可以从不同寄存器中取出内容后粘贴

    "<寄存器名称>   按下“"”键和另一个字符键,便可以定义一个寄存器。例如:

    "a  "1

    定义寄存器后直接进行操作

    "ayy    将当前行复制到寄存器 a 中

    "ap     将寄存器 a 中的内容粘贴到光标之后

    通常情况下,寄存器 + ( " + Shift+= )对应X下的剪贴板。您在其它程序中复制的内容,可以使用 "+p 粘贴到Vim中;

    您在Vim中,可以使用 "+y 将内容复制到剪贴板,再粘贴到其它程序中

    没有指定寄存器时,Vim使用“无名寄存器”存储内容

    使用撤销分支功能

    可以使用 :undolist 命令查看缓冲区存在的撤销分支列表。而通过 :undo <> 命令则能够移到撤销的某个分支。

    强烈建议大家先看看 doc/change.txt 里关于寄存器部分的内容, 我只是简单提及一下,英文不太好的朋友请找 vim 的中文文档。 我要介绍的超强武器是 ctrl-r,在 insert mode 和 command mode 均可使用,功能就是插入寄存器相关内容。 大家可以试试先 copy 或 delete 一些文本,然后在 normal mode 或 command mode 输入 ctrl-r ",看到了吗, 你粘贴了寄存器"的内容。

    寄存器的主要有以下几种:

    a. The unnamed register ""

       "d", "c", "s", "x" 和 "y" 等涉及删除或拷贝的命令都会将内容存放于此(有例外)。

    b. 10 numbered registers "0 to "9          

       0 为最近拷贝的内容,1-9 为最近删除的内容。

       指定 named register 时不会存放于此。

    c. The small delete register "-

       删除不多于一行的内容会存在于此。

    d. 26 named registers "a to "z or "A to "Z

       小写与大写的区别是,小写是覆盖方式,大写是添加方式。

    e. four read-only registers ":, "., "% and "#

       ". 存放上次插入的文本

          有什么用?呵,例如,你输入了一段文本,在另一个地方也要有相同的内容,你输完后,一般要选择并复制一下吧?

          而用这个,直接移到需要插入的地方,i<ctrl-r>. 即可。

       "% 是当前编辑文件全名

          呵,vim 中,% 就是代表当前编辑文件名的变量,好记吧?

          不过,一般直接用 % 就行,例如":!cat %",vim 会自动扩展。

       "# 是alternate file 名称 (这个我不知道)

       ": 上次执行的命令

          记起来比较容易,冒号就是命令行提示符嘛。这个有些什么用呢?

          在测试配置文件时十分有用,先在命令行输入命令,调试好后,

          在 insert mode 里按Ctrl-R : 就可将该命令插到文件中。

    f. the expression register "=

          呵,表达式寄存器,可以输入一个表达式,并插入结果。

    g. The selection and drop registers "*, "+ and "~ 

          跟 gui 即 X/Windows 剪贴板有关的变量。

          在 X 中,鼠标中键与系统剪贴板不一样,至于区别,大家自己试验一下,这里给个提示,在命令行下输入 reg 可以列出所有

          寄存器的内容。

    h. The black hole register "_ 

          黑洞

    i. Last search pattern register "/

          上次搜索的内容。例如,我要搜索一个单词 linuxforum,但我比较懒,先输入 /linux,发现出现很多个 linux,多次按 n 无果,

          难道要重新输入 /linuxforum ? 不用,只需要 /<ctrl-r>/forum 即可。呵,聪明的你一定想到了,用命令行历史也可以调来,按 ctrl-p 或 ctrl-n

          即可上下翻阅。这样也可以嘛,也比较快捷,但要查找 forumlinux 呢?

          用 ctrl-r 的话只需 /forum<ctrl-r>/ 。

    7)在使用X Window系统时,有两个特殊的寄存器是需要注意一下的:”"*”访问的寄存器是X的主选择区域(primary selection),”"+”访问的寄存器是X的剪贴板(clipboard)。

    =====================================

    存入寄存器:

    1)在visual模式下,输入:”寄存器y”

    2)录制的时候:输入:“q{regsiter}”,使用:在normal模式下,按“@{regsiter}”

    ================================

    调用寄存器:

    在插入模式里,按ctrl+r,再按寄存器名,如调用寄存器a:

    ctrl+r,a就可以了。

    ======================================

    vim常用的寄存器:

    ‘”‘     无名寄存器,包含最近删除或抽出的文本

    ‘%’     当前文件名

    ‘#’     轮换文件名

    ‘*’     剪贴板内容 (X11: 主选择)

    ‘+’     剪贴板内容

    ‘/’     最近的搜索模式

    ‘:’     最近的命令行

    ‘.’     最近插入的文本

    ‘-’     最近的行内 (少于一行) 删除

    ‘=’     表达式寄存器;你会被提示输入一个表达式 (见

    ==============================================

    请问如何用vi 复制第5行到第10行并粘贴到第12行之后?

    命令行模式下输入

    :5,10 co 12

    ---------------------

    延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代

    光标移到起始行,输入ma

    光标移到结束行,输入mb

    光标移到粘贴行,输入mc

    然后 :'a,'b co 'c

    把 co 改成 m 就成剪切了

    -------------------------

    Vi 提供了文本移动和复制命令,用户利用这些指令可以方便的复制字符、文字、行还有文本块。

    有关的命令如下:

    yy                                        将当前行复制到缓冲区

    yw                                        将当前单词复制到缓冲区

    y1                                        将光标处的一个字符复制到缓冲区

    p                                        将缓冲区的信息粘贴到光标的后面

    :行号1 ,行号2 copy 行号3                                        将行号1到行号2的内容复制到行号3所在行的后面。

    :行号1 ,行号2 move 行号3                                       将行号1到行号2的文本内容移动到行号3所在行的后面。

    寄存器操作

    Vim可以将不同字段剪切或复制到不同寄存器中,您可以从不同寄存器中取出内容后粘贴

    "<寄存器名称>   按下“"”键和另一个字符键,便可以定义一个寄存器。例如:

    "a "1

    定义寄存器后直接进行操作

    "ayy    将当前行复制到寄存器 a 中
    "ap 将寄存器 a 中的内容粘贴到光标之后
    • 通常情况下,寄存器 + ( " + Shift+= )对应X下的剪贴板。您在其它程序中复制的内容,可以使用 "+p 粘贴到Vim中;
      您在Vim中,可以使用 "+y 将内容复制到剪贴板,再粘贴到其它程序中
    • 没有指定寄存器时,Vim使用“无名寄存器”存储内容
    使用撤销分支功能

    可以使用 :undolist 命令查看缓冲区存在的撤销分支列表。而通过 :undo <> 命令则能够移到撤销的某个分支。



    强烈建议大家先看看 doc/change.txt 里关于寄存器部分的内容, 我只是简单提及一下,英文不太好的朋友请找 vim 的中文文档。 我要介绍的超强武器是 ctrl-r,在 insert mode 和 command mode 均可使用,功能就是插入寄存器相关内容。 大家可以试试先 copy 或 delete 一些文本,然后在 normal mode 或 command mode 输入 ctrl-r ",看到了吗, 你粘贴了寄存器"的内容。

    寄存器的主要有以下几种:

    a. The unnamed register ""

    "d", "c", "s", "x" 和 "y" 等涉及删除或拷贝的命令都会将内容存放于此(有例外)。

    b. 10 numbered registers "0 to "9

    0 为最近拷贝的内容,1-9 为最近删除的内容。

    指定 named register 时不会存放于此。

    c. The small delete register "-

    删除不多于一行的内容会存在于此。

    d. 26 named registers "a to "z or "A to "Z

    小写与大写的区别是,小写是覆盖方式,大写是添加方式。

    e. four read-only registers ":, "., "% and "#

    ". 存放上次插入的文本

    有什么用?呵,例如,你输入了一段文本,在另一个地方也要有相同的内容,你输完后,一般要选择并复制一下吧?

    而用这个,直接移到需要插入的地方,i<ctrl-r>. 即可。

    "% 是当前编辑文件全名

    呵,vim 中,% 就是代表当前编辑文件名的变量,好记吧?

    不过,一般直接用 % 就行,例如":!cat %",vim 会自动扩展。

    "# 是alternate file 名称 (这个我不知道)

    ": 上次执行的命令

    记起来比较容易,冒号就是命令行提示符嘛。这个有些什么用呢?

    在测试配置文件时十分有用,先在命令行输入命令,调试好后,

    在 insert mode 里按Ctrl-R : 就可将该命令插到文件中。

    f. the expression register "=

    呵,表达式寄存器,可以输入一个表达式,并插入结果。

    g. The selection and drop registers "*, "+ and "~

    跟 gui 即 X/Windows 剪贴板有关的变量。

    在 X 中,鼠标中键与系统剪贴板不一样,至于区别,大家自己试验一下,这里给个提示,在命令行下输入 reg 可以列出所有

    寄存器的内容。

    h. The black hole register "_

    黑洞

    i. Last search pattern register "/

    上次搜索的内容。例如,我要搜索一个单词 linuxforum,但我比较懒,先输入 /linux,发现出现很多个 linux,多次按 n 无果,

    难道要重新输入 /linuxforum ? 不用,只需要 /<ctrl-r>/forum 即可。呵,聪明的你一定想到了,用命令行历史也可以调来,按 ctrl-p 或 ctrl-n

    即可上下翻阅。这样也可以嘛,也比较快捷,但要查找 forumlinux 呢?

    用 ctrl-r 的话只需 /forum<ctrl-r>/ 。

    7)在使用X Window系统时,有两个特殊的寄存器是需要注意一下的:”"*”访问的寄存器是X的主选择区域(primary selection),”"+”访问的寄存器是X的剪贴板(clipboard)。

    =====================================

    存入寄存器:

    1)在visual模式下,输入:”寄存器y”

    2)录制的时候:输入:“q{regsiter}”,使用:在normal模式下,按“@{regsiter}”
    ================================

    调用寄存器:

    在插入模式里,按ctrl+r,再按寄存器名,如调用寄存器a:

    ctrl+r,a就可以了。

    ======================================

    vim常用的寄存器:

    ‘”‘     无名寄存器,包含最近删除或抽出的文本
    ‘%’     当前文件名
    ‘#’     轮换文件名
    ‘*’     剪贴板内容 (X11: 主选择)
    ‘+’     剪贴板内容
    ‘/’     最近的搜索模式
    ‘:’     最近的命令行
    ‘.’     最近插入的文本
    ‘-’     最近的行内 (少于一行) 删除
    ‘=’     表达式寄存器;你会被提示输入一个表达式 (见

    ==============================================

    请问如何用vi 复制第5行到第10行并粘贴到第12行之后?

    命令行模式下输入
    :5,10 co 12

    ---------------------

    延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代

    光标移到起始行,输入ma
    光标移到结束行,输入mb
    光标移到粘贴行,输入mc

    然后 :'a,'b co 'c

    把 co 改成 m 就成剪切了

    -------------------------

    Vi 提供了文本移动和复制命令,用户利用这些指令可以方便的复制字符、文字、行还有文本块。
    有关的命令如下:
    yy                                        将当前行复制到缓冲区
    yw                                        将当前单词复制到缓冲区
    y1                                        将光标处的一个字符复制到缓冲区
    p                                        将缓冲区的信息粘贴到光标的后面
    :行号1 ,行号2 copy 行号3                                        将行号1到行号2的内容复制到行号3所在行的后面。
    :行号1 ,行号2 move 行号3                                       将行号1到行号2的文本内容移动到行号3所在行的后面。

  • 相关阅读:
    cocos2dx 历史版本下载问题
    C++ 类之间的互相调用
    什么内网和外网
    c++网络编程2:TCP连接概念及编程
    Texturepack、physicsEditor、spriteilluminator的安装包下载
    逃离地心——齿轮旋转
    Cocos2d-x v3.0物理系统 利用PhysicsEditor创建多边形
    c#发送Http请求方法汇总
    代码大全知识点
    .Net技术方向
  • 原文地址:https://www.cnblogs.com/shudai/p/5175852.html
Copyright © 2011-2022 走看看