zoukankan      html  css  js  c++  java
  • vim编辑技巧

     

      算上大学上课linux接触四年了,可惜除了工作接触的那些,其他地方还是很水的,都不精通,今日翻来看了看以前过目即忘的vim技巧,发现,如无几年操作经验,这些技巧很难领悟的。这里写下来,以备后查。

    区块选择


    v                                  字符选择,会将光标经过癿地方反白选择!
    V(大写)                          行选择,会将光标经过癿行反白选择!(常用,配合上下左右键,进行区域选择,很爽)
    [Ctrl]+v                        区块选择,可以用长方形癿方式选择资料
    y                                  将反白癿地方复制起来 d 将反白癿地方删除掉
     
    区域选择如果配合下文的c命令就省的删除再粘贴区域了。
     

    删除操作


    对字符操作:
    x, X                 在一行字当中,x 为向后删除一个字符 (相当亍 [del] 按键),X 为向前删除一个字符(相当亍 [backspace] 亦即是退格键) (常用)
    nx                   n 为数字,连续向后删除 n 个字符。丼例来说,我要连续删除 10 个字符, 『10x』。
    d$                   删除游标所在处,到该行行尾的所有字符
    d0                   删除游标所在处 ,到该行行首的所有字符
     对行操作:
    dd                    删除游标所在的那一整列(常用)
    ndd                  n 为数字。删除光标所在的行向下n行,例如 20dd 则是删除 20行 (常用)
    d1G                 删除光标所在到第一行的所有数据
    dG                   删除光标所在到最后一行的所有数据
     
    与移动相关

    行范围

    移动到行首:gg

    移动到行尾 :字符$

           小注:命令”G“前可以加上数字,在这里,数字的含义并不是倍数,而是你打算跳转的行号。例如,你想跳转到文件的第1234行,只需输入”1234G“。

    字符0:第一个非空字符前

    字符^:第一个非空字符上

    上下左右:h, j, k, l

           小注:如同许多vim命令一样,可以在这些键前加一个数字,表示移动的倍数。例如,”10j“表示向下移动10行;”10l“表示向右移动10列。

    页范围

           小注:通常使用CTRL-BCTRL-F来进行翻页,它们的功能等同于PageUp和PageDown。CTRL-BCTRL-F前也可以加上数字,来表示向上或向下翻多少页

          小注: 在文件中移动,你可能会迷失自己的位置,这时使用”CTRL-G“命令,查看一下自己位置。这个命令会显示出光标的位置及其它信息。为了避免迷失,你可以打开行号显示;使用”:set number“命令后,会在每一行前显示出行号,可以更方便的定位的跳转(:help ‘number’

    移动到指定字符: 使用f, t, F, T命令。    

            小注:“f“命令移动到光标右边的指定字符上,例如,”fx“,会把移动到光标右边的第一个’x'字符上。”F“命令则反方向查找,也就是移动到光标左边的指定字符上。

    t“命令和”f“命令的区别在于,它移动到光标右边的指定字符之前。例如,”tx“会移动到光标右边第一个’x'字符的前面。”T“命令是”t“命令的反向版本,它移动到光标右边的指定字符之后。

    这四个命令只在当前行中移动光标,光标不会跨越回车换行符。

    可以在命令前面使用数字,表示倍数。例如,”3fx“表示移动到光标右边的第3个’x'字符上。

    ;“命令重复前一次输入的f, t, F, T命令,而”,“命令会反方向重复前一次输入的f, t, F, T命令。这两个命令前也可以使用数字来表示倍数。

     
    与复制相关

    yy                 复制游标所在癿那一行(常用)
    y1G               复制光标所在列到第一列癿所有数据
    yG                复制光标所在列到最后一列癿所有数据
    y0                复制光标所在癿那个字符到该行行首癿所有数据
    y$                复制光标所在癿那个字符到该行行尾癿所有数据
     

    复原以及重做操作


    u 复原前一个劢作。(常用)
    [Ctrl]+r 重做上一个动作。(常用)

    替换模式


    image

    关键是 “R “ 取代模式,它可以快速的替换以及插入数据(类似于 word中的 即点即输)的功能。

    最后重点讲下粘贴复制

    vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

    如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
    vim帮助文档里与粘贴板有关的内容如下:

    1. vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容
    2. 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
      • “号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
      • +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制vim中,需要在正常模式下按"+p;
    3. 要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

    注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。

    下面是vim复制粘贴的基本命令:
    yy复制游标所在行整行。或大写一个Y。 
    2yy或y2y复制两行。 ㄟ ,请举一反三好不好! :-) 
    y^复制至行首,或y0。不含游标所在处字元。 
    y$复制至行尾。含游标所在处字元。 
    yw复制一个word。 
    y2w复制两个字(单词)。 
    yG复制至档尾。 
    y1G复制至档首。 
    p小写p代表贴至游标后(下)。 
    P大写P代表贴至游标前(上)。、

    总结就是:

    "(register)y(range) → 将要复制的内容放到指定的寄存器中。register 包括所有数字和字母;range 就是范围,例如:w、y 等。也可以使用可视化操作选中要复制的内容后再复制。
    "(register)(times)p → 将指定寄存器的内容粘贴到光标的后面。times 指定要粘贴多少次。

     
  • 相关阅读:
    域名ICP备案个人备案写网站名称注意事项
    关于域名备案的注意事项
    MySQL里默认的几个库是干啥的?
    Python 1.3 元组与文件
    PTA(BasicLevel)-1006换个格式输出整数
    数据结构与算法-图的最短路径Dijkstra
    PTA(Basic Level)-1002 写出这个数
    PTA(Basic Level)-1076 Wifi密码
    C程序设计语言笔记-第一章
    谁能笑到最后,约瑟夫环-Josephus问题求解
  • 原文地址:https://www.cnblogs.com/zhaoyl/p/4085959.html
Copyright © 2011-2022 走看看