zoukankan      html  css  js  c++  java
  • vim的寄存器和剪贴簿操作?

    vim 复制/ 删除 多行?

    1. 有确定序号的行: :10,15m20, 10,15co20
    2. 没有确定序号的行: ndd, nyy. 其中的n表示, 从当前行开始算起(当前行本身要包含!!!), 向下共删除/复制 n行!
      4dd, 4yy, 表示, 从当前行算起, 向下删除 /复制 4行,
      !!! 注意, 这里就不用加 + 加号了. 因为单击加号的时候, 光标就向下 移动了!!!

    粘贴put的方式:

    1. p, 光标停留在粘贴内容的第一行 的开头
    2. gp, 光标停留在粘贴内容的最后 一行的 开头
    3. gP, 光标则停留在 粘贴内容的最后 下面的一行!

    10,15co20, 复制到20行, 10,15m20 移动到20行.

    在vim中 的 复制/删除/粘贴 等操作都是通过 寄存器 来实现的: http://jingyan.baidu.com/article/7f766daf43789b4101e1d0f3.html

    传统软件的复制(copy),剪切(cut),粘贴(paste),在Vim中对应的是yank,delete和put。在Vim中的复制,删除,替换等操作的临时内容,都会存储在寄存器中。

    寄存器的操作方法是 : 寄存器的名称 + 操作

    寄存器的表示方法: 以双引号开头 (表示 引用麻 )".....

    1. 寄存器的名称, 主要的有三种:
    • 默认寄存器: 总是收集 最近一次的 "操作" 结果, 不管是复制/删除/替换等等. 也叫 无名寄存器 : ""

    • 复制(专用)寄存器: 总是收集最近一次 "复制" 的结果, 用 "0表示

    • 删除(专用)寄存器: 从"1, 到 "9

    • 命名寄存器, 主要是放置比较重要的内容, 从"a, 到"z , 共26个命名寄存器.

    • 黑洞寄存器, "_ 将会彻底删除其中的内容.

    • 这个是最重要的!!! 系统剪贴簿 === "+ 寄存器, 即vim的 +加号寄存器就是我们的 系统剪贴簿. 复制和粘贴的操作是: "+yy, "+p.
      !!! 有的也叫做: 星号寄存器: "*.

    =====================================================
    额外的一些寄存器:
    ". 表示上一次输入的内容
    ": 表示上一次输入的命令
    "/ 表示上一次的搜索 寄存器
    "%, 只读寄存器, 表示当前的文件名

    为什么我的vim不能使用系统粘贴板, 不能使用 "+p, 或"*p, "+gp, "+gP?

    这篇文章上有讲的: http://www.cnblogs.com/soc-linux-driver/archive/2013/12/17/3478531.html

    是因为, 我们使用的是 terminal形式的 vim, 没有使用gui图形界面的vim, 要使用"拖曳和系统剪贴簿" , 可以使用 gvim: 这个是用perl写的 支持图形界面的vim.
    在图形界面下, 就可以使用 系统粘贴板. 而且你可以查看到 "*, "+这些寄存器中的内容.

    使用vim --version. 可以查看到 系统剪贴簿对xterm并不可用: -xterm_clipboard.

    只读(read-only)寄存器:":, "., "%, "#,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名;
    表达式(expression)寄存器:"=,只读,用于执行表达式命令;
    选择及拖拽(selection and drop)寄存器:"*, "+, "~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用;
    
    
    ~~~~~~~~~ 摘自网络完
    
    单引号+数字, 表示文件标记: file marks, 就是文件中的光标位置:
    例如: 
    # File marks:
    '0  1  11  /var/www/html/main.css
    '1  1  0  /var/www/html/index.php
    '2  31  0  /var/www/html/index.php
    '3  24  20  /var/www/html/index.php
    '4  349  0  ~/.vim/bundle/snipMate/snippets/php.snippets
    '5  37  0  /var/www/html/index.php
    '6  38  0  /var/www/html/index.php
    '7  1  0  ~/ab.php
    '8  96  1  ~/.vim/bundle/snipMate/snippets/php.snippets
    '9  107  0  ~/.vim/bundle/snipMate/snippets/html.snippets
    
    
    
    
    ## 如何调整vim窗口的大小?
    1. 水平方向是用 | , 左右调整, 竖直方向上是_, 下划线, 
    2. |, _ ,分别表示最大化, 要最小化, 在前面加1, 即:  ctrl+w 1|, ctrl+w 1_
    
    上面这两个是最大和最小化.
    
    如果不是最大和最小化, 则用上下 + /-, 左右 ><. 来调整....
    
    
    3. 要将名窗口恢复到正常大小, 使用ctrl+w =.
    
    <font color="red">
    ###  移动/ 滚动 屏幕/代码  的 几个常用方法:</font>
    -  forward和backward:  crlt+f  ctrl+b向前/后 移动一屏,   pagedown , pageup :  ctrl+u 和 ctrl+d 向前或 向后 移动 半屏;
    -  H M L high/middle/low: 是指 : 当前屏幕(上的内容) 不动 , 屏幕不滚动,  只是光标 移动到 最顶上 /中间 /最下面;
    -  z命令:  光标所在的当前行在屏幕上滚动:  是为了让 当前行 所在的 关键代码行 移动到 显眼位置, 便于编辑:  使用  z+enter , z+点号 , z+横线, 使 光标所在的当前行 **滚动**到屏幕最顶上/中间和屏幕底端.
    -  要特别注意 /区分  change 和 delete 命令的区别!  实际上 ,change命令是很有用的, 不要用 delete 命令来代替 change命令: 比如 : cc, c$, cnw等, cc命令 比 `dd, i, 向上`等多个组合命令要快得多!
    -  最后 , 就是特别要注意 , ` 操作 动词 + 量词+ 单位/方向 ` 的灵活使用 :  比如:  c/d/y + n + j/k/w/h/l/$/^等.
  • 相关阅读:
    把java程序作为windows服务运行
    安装CentOS7出现dracut-initqueue timeout-starting…starting timeout scripts 解决办法
    在Linux下打包tar文件时添加密码的方法
    tk mybatis通用mapper,复杂and or条件查询
    firewalld 端口转发(机器内转发+机器间转发)
    postgresql中的序列nextval
    postgresql 建立索引
    索引面试题分析
    PostgreSQL不等于查询索引方法
    net-snmp开发中出现“Error opening specified endpoint"" ”的解决方案
  • 原文地址:https://www.cnblogs.com/bkylee/p/5869332.html
Copyright © 2011-2022 走看看