美文网首页
Dive into vim

Dive into vim

作者: 左岸咖啡 | 来源:发表于2014-11-05 10:21 被阅读39次

    Dive Into VIM


    VIM命令行模式

    1、光标的移动

    • h,j,k,,l,分别使光标向左,下,上,右移动;
    • w,光标向前移动一个单词,b,光标向后移动一个单词;
    • e,到下一个单词的结尾;
    • 0,光标移动到行首;$,光标移动到行尾;
    • ^,光标移动到当前行的第一个字母;
    • ) ,移动光标到下一个句子;
    • (,移动光标到上一个句子;
    • ctrl+f ,光标移动到下一屏;
    • ctrl+b,光标移动到上一屏;
    • G, 移动到文件末尾;
    • numG,光标移动到指定行(eg.100G就是第100行),配合 se number,显示行号使用;
    • gg,移动到文件开始;
    • H,光标移动到屏幕上方;
    • M,光标移动到屏幕中间;
    • L ,光标移动到屏幕下方;
    • * ,读取光标处的字符串,并且移动光标到它再次出现的地方,向后搜索。有点类似搜索/find命令;
    • #,与*类似,只是向前搜索;
    • /text,搜索文本,重复上次的搜索按n
    • ?text ,与上面的类似,反方向;
    • ma,做书签标记。a代表书签名字,书签名字只能是小写字母。用户看不到书签的存在;
    • ``a`,到书签的a处;
    • ``.`,到上次编辑的地方,这个是默认的书签,不需要特别标记它。
    • dt",删除所有内容,直到遇到双引号,这个对码农很有用!
    • t,,到逗号前的第一个字符,逗号可以是任何字符;

    2、插入命令

    • i,在当前字符的左边插入;

    • I,在当前行首插入;

    • a,在当前字符的右边插入;

    • A,在当前行尾插入;

    • o,在当前行下面插入新行;

    • O,在当前行上面插入新行;

    • c{motion},删除 motion 命令跨过的字符,并且进入插入模式。比如: c$,这将会删除从光标位置到行尾的字符并且进入插入模式。ct!,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。被删除的字符被存在了剪贴板里面,并且可以再粘贴出来;

    • d{motion},和c{motion}类似,区别是不进入插入模式;

    3、有效移动大段文本,可视化模式

    • v,按字符来选择大段文本可精确到字符,试试看,用h,j,k,,l来移动光标;
    • V,按行来选择大段文本精确到行,因此h,l,无效;
    • ctrl+v,块选择,这个太强大了,可以进行纵向编辑,有点像ultra editor里面的纵向编辑模式,比如想删除第一列的所有字符,用这个实在太方便了!!!
    • d,剪贴内容到剪贴板,但不进入插入模式;
    • y,拷贝内容到剪贴板;
    • c,剪贴内容到剪贴板,并且进入插入模式;

    如果你很清楚在做什么,没必要进入可视化模式,前提是你必须知道你剪切拷贝了什么!

    • yy ,拷贝当前行;
    • dd,剪切当前行;
    • cc,剪切当前行并且进入插入模式;
    • D,剪切当前行到行尾;
    • Y,拷贝当前行,同yy;
    • C, 剪切当前行到行尾并进入插入模式;
    • x,剪切当前字符到剪贴板;
    • s,与x,类似,但是会进入插入模式;
    • p,粘贴;
    • .,这个命令很强大,意思是重复上一次的操作;

    4、进阶命令

    • 文本替换,命令[range]s/from/to
      • 方式一、使用可视化模式选中一段文本,比如将这段文本中的python替换成java,选中文本之后输入:s/python/java ,回车后发现选中文本区的内容都被替换了。
      • 方式二、先用:se number命令展示出行号,然后使用指定行号的方式来替换,例如:40,100s/python/java,标识将第40行到100行中的python替换成java。

    相关文章

      网友评论

          本文标题:Dive into vim

          本文链接:https://www.haomeiwen.com/subject/kcxbtttx.html