zoukankan      html  css  js  c++  java
  • 作为程序员之 Vim(一)

    开始使用 Vim(一)

      vim被称为是编辑器之神,如果可以学好vim的话,就可以在键盘上 “健指如飞” 了,可以完全摆脱鼠标来进行文本的定位编辑。
      当然,vim还可以进行各种配置,装上各种插件,做成 IDE ,会有很炫酷的感觉,而且做为 伟大 的软件工程师,能在键盘上 刷刷刷地,灵活地超控自己的代码也是一种非常值得 自豪的事,所以,我觉得,掌握 vim 是做为一个计算机方向专业的人的基础课程,很有必要去接触一下 vim 这个“编辑器之神”。
    
       据说vim的学习曲线变化很大,而且对于我这个之前完全没有接触过的人来说,完全不知道应该是怎么入手,网上去查找资料,得到的全是一大堆 完全看不懂 的命令和各种看起来好屌的 vim的配置和 用vim作为 IDE 的教程,看起来很厉害,可是却不是我想要的,我想要的是,我该怎么去入门这个东西,不需要听那么多复杂的完整的,像是字典一样的命令集合,而是一个能让我开始去使用 vim 的教程,能告诉我,刚开始该怎么去玩它。 

    开启

    下载 gvim 安装,然后windows系统的cmd命令打开gvim,也可以直接打开gvim.exe
    建立一个文档:vim test.txt.
    好了,算是开启 VIM 了。
    

    Alt text 


    Alt text

    简单介绍

    简单了解一下几种模式

    1. 普通模式
     Vim编辑方式的主要用途是在被编辑的文件中移动光标的位置。
     一旦光标移到到所要的位置,就可以进行剪切和粘贴正文块,删除正文和插入新的正文。当完成所有的编辑工作后,需要保存编辑器结果,退出编辑程序回到终端
    
    2. 插入模式
     按下 i 就可以进入插入模式,按下 esc 回到编辑模式。
     插入模式其实就是想我们正常使用文本编辑器那样,进行文字,代码的书写,但是光标的移动需要鼠标的辅助。
    
    3. 命令行模式
      使用 :进入命令行模式。
    
    4. 可视模式
      按下 v 进入可视模式,可以移动光标对文本进行选择。

    掌握几个常用的操作

    打开:
      :e path_to_file/filename
    
    存盘:
      :w    保存
      :q    退出
      :wq   保存并退出 wq 后面可以加文件名
      :q!   强制退出
    删除/复制/粘贴:
       x    删除当前光标所在的字符
       dd   删除当前光标所在的行
       yy   复制当前行
       nyy  复制n行
       p    小写字母 p,将缓冲区的内容粘贴到光标的后面
       P    大写字母 P,将缓冲区的内容粘贴到光标的前面
       u    撤销
    

    学会在文本中移动光标

    1 上下左右

     h(左) j(下) k(上) l(右)

    2 行内移动

    w                右移光标到下一个字的开头;
    e                右移光标到一个字的末尾;
    b                左移光标到前一个字的开头;
    0                数字0,左移光标到本行的开始;
    $                右移光标,到本行的末尾;
    ^                移动光标,到本行的第一个非空字符。

    3 更大范围的移动:

    *          当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
    #          当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
    (/)        移动到 前/后 句 的开始;
    {/}        跳转到 当前/下一个 段落 的开始。
    g_         到本行最后一个不是 blank 字符的位置。
    fa         到下一个为 a 的字符处,你也可以fs到下一个为s的字符。
    t,         到逗号前的第一个字符。逗号可以变成其它字符。
    3fa        在当前行查找第三个出现的 a。
    F/T        和 f 和 t 一样,只不过是相反方向;
    gg         将光标定位到文件第一行起始位置;
    G          将光标定位到文件最后一行起始位置;
    NG或Ngg    将光标定位到第 N 行的起始位置。

    4 找到需要的 某一页

    : n             将光标移到第 n 行
    ctrl+f           在文件中前移一页(相当于 page down);
    ctrl+b           在文件中后移一页(相当于 page up);
    H                将光标移到屏幕上的起始行(或最上行);
    M                将光标移到屏幕中间;
    L                将光标移到屏幕最后一行。
    3L               表示将光标移到屏幕的倒数第3行

    好了,到这里可以自个儿玩一阵子了,自己多试试上面的那些指令啊,体验一下脱离鼠标,让指尖游走在键盘上操控光标的成就感吧。


    搜索查找文本内容

    Vim中执行搜索匹配最强大的地方是结合 正则表达式 来搜索 
    当然,文本编辑,怎么可能少了搜索呢。 
    搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向搜索(朝文件开头方向)。例如:

    /str1             正向搜索字符串 str1;
    n                 继续搜索,找出 str1 字符串下次出现的位置;
    N                 继续搜索,找出 str1 字符串上一次出现的位置;
    ?str2             反向搜索字符串 str2 。

    替换

    Vim常规的删除命令是 d、 x (前者删除 行 ,后者删除 字符 ),结合Vim的其他特性可以实现基础的删除功能。将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符或一行、多行。例如:

    d$                从当前光标起删除字符直到行的结束;
    d0                从当前光标起删除字符直到行的开始;
    J                 删除本行的回车符(CR),并和下一行合并。

    其他命令:

    rc                 用 c 替换光标所指向的当前字符;
    nrc                用 c 替换光标所指向的前 n 个字符;
    5rA                用 A 替换光标所指向的前 5 个字符;
    x                  删除光标所指向的当前字符;
    nx                 删除光标所指向的前 n 个字符;
    3x                 删除光标所指向的前 3 个字符;
    dw                 删除光标右侧的字;
    ndw                删除光标右侧的 n 个字;
    3dw                删除光标右侧的 3 个字;
    db                 删除光标左侧的字;
    ndb                删除光标左侧的 n 个字;
    5db                删除光标左侧的 5 个字;
    dd                 删除光标所在行,并去除空隙;
    ndd                删除(剪切) n 行内容,并去除空隙;
    3dd                删除(剪切) 3 行内容,并去除空隙;

    推荐文章 
    推荐博客

     
     
    最后希望,博客园能有一个真正好用的 Markdown 编辑器。。。
  • 相关阅读:
    转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
    在ROS系统下,获取tango的RGBD信息和Pose信息
    ubuntu更改源为aliyun的源;ROS改为新加坡源
    PCL学习(五)如何在mesh模型上sample更多点及三维物体姿态估计
    利用StringBuffer向字符串特定的重复子字符串插入数据
    poi做Excel数据驱动,支持.xls和.xlsx格式的excel文档,比起jxl强大不少
    selenium grid的使用与配置
    maven下载,安装与eclipse中maven配置
    Webdriver实现对菜单栏的灵活切换功能,附上代码,类似的菜单栏切换可以自己封装
    Webdriver控制翻页控件,并实现向前向后翻页功能,附上代码,仅供参考,其他类似日期控件的功能可以自己封装
  • 原文地址:https://www.cnblogs.com/tianjintou/p/4728404.html
Copyright © 2011-2022 走看看