• 轻快的vim(一):移动


    断断续续的使用VIM也一年了,会的始终都是那么几个命令,效率极低

    前几个星期把Windows换成了Linux Mint,基本上也稳定了下来

    就今晚,我已经下定决心开始新的VIM之旅,顺便写一系列的笔记和总结

    还是那句话,我只是个新人,代码也没写过多少行,但我一直在默默努力自学着

    所以,还请老鸟们看看笑笑就行了,不要鄙视我,我很脆弱……

    这是俺写的《轻快的VIM系列》第一节,每一节都会不断更新,加入更多技巧在里面

    VIM新手们加油,咱一起总结,一起努力练习……

    基础

    字符移动

    k            上移                k
    h            左移            h        l
    l            右移                j
    j            下移

    你也可以使用键盘上的方向键来移动,但这么做h j k l的存在就失去了意义

    之所以使用h j k l来控制方向,其主要目的是让你的手不离开键盘中心,从而提高效率

    tips:在命令前加上数字代表命令执行次数,如:5k,表示上移5行

    单词移动

    W w            移动到下一个单词开头
    E e            移动到下一个单词结尾
    B b            倒退到上一个单词开头

    需要注意的是,E会忽略标点符号,如:I‘m,e会当成两个单词,E则不会

    同样,在命令前加上数字代表执行次数,如:2w,表示往下移动2个单词

    开头我也许会多说几遍,因为这个技巧很重要

    整行移动

    0            移动到行首
    $            移动到行末
    +            移动到下一行开头
    -            移动到上一行开头

    这里需要注意的是+ -和上面的j k有什么不同之处

    j k也是移动到上一行和下一行,但它们移动的是光标所在的位置

    + -不管你的光标在何处,总是移动到下一行或上一行的行首

    进阶

    滚屏

    复制代码
    Ctrl+f            往前滚动一整屏
    Ctrl+b            往后滚动一整屏
    Ctrl+d            往前滚动半屏
    Ctrl+u            往后滚动半屏
    
    Ctrl+e            往后滚动一行        
    Ctrl+y            往前滚动一行
    复制代码

    看似比较多,但是可以根据键盘的位置来进行记忆,并且下面两个也不常用

    上面的滚屏都有一个共同点,就是会改变光标的位置,且屏幕也在改变

    如果想让光标维持在原来的位置实现滚屏请看下面

    用z调整光标

    z<Enter>        将光标所在行移动到屏幕顶端
    z.              将光标所在行移动到屏幕中间
    z-              将光标所在行移动到屏幕低端

    tips:980z<Enter>可以将第980行移动到屏幕顶端

    好吧,有时候你其实不想滚屏,你只想在当前屏幕中移动

    请往下看

    在屏幕中移动

    H            移动到屏幕顶端的行
    M            移动到屏幕中央的行
    L            移动到屏幕底端的行
    
    nH           移动到屏幕顶端往下的第n行
    nL           移动到屏幕顶端往上的第n行

    据我猜测这三个字母应该是HIgh、Middle和Low的缩写,其实挺好记的

    多练习几遍就行了,需要注意的是:这里只是光标的位置变化,和上面两种不同

    tips:你可以用+ -和j k实现同样的位置变化,只不过要操作多次而已

    + -和j k的区别忘了吗?往上看看吧

    在当前行移动

    ^            移动到当前行的第一个非空格处
    n|           移动到当前行的第n列

    这里的^与上面的0通常情况下表示的位置是一样的

    而n|,个人感觉还没有h l方便,慢慢的数出行数还不如直接按着h l 左右移

    根据文本块移动

    所谓的文本块也就是句子、段落、小节等

    (            移动到当前句子开头
    )            移动到下一个句子开头
    {            移动到当前这一段开头   
    }            移动到下一段开头
    [[           移动到当前这一节的开头
    ]]           移动到下一节的开头

    其中,VIM以? . !等符号来标记一个句子

    空白行来标记一个段落

    用节宏来标记一个节(节宏是什么我还没搞清楚)

    根据行号来移动

    Ctrl+g            显示当前行信息
    nG                转至第n行
    G                 转至文本末尾
    gg         移至文本开头

    如果你不知道当前是多少行的话就可以用Ctrl+g来查看

    如果想转到第800行,可以用800G

    其实z命令也可以做到,并且把光标移动到第一行

    tips:``反引号可以返回到使用G之前的位置

  • 相关阅读:
    Cocos2d-x开发实例:使用Lambda 表达式
    Cocos2d-x实例:单点触摸事件
    Cocos2d-x中触摸事件
    Cocos2d-x开发实例介绍帧动画使用
    Cocos2d-x开发实例介绍特效演示
    c++ 类型转换
    boost的编译
    c/c++二级指针动态开辟内存
    基于RANSAC的点云面分割算法
    点到平面直线的距离和空间直线的距离
  • 原文地址:https://www.cnblogs.com/vactor/p/5012497.html
Copyright © 2020-2023  润新知