zoukankan      html  css  js  c++  java
  • vim 使用

     

    要做个Linuxer,VIM的操作是必须就跟手指头盲打键盘那么熟练。

    首先说下Vim的两种最常用模式,这是对菜鸟说的:),普通模式和输入模式,在普通模式下所有的按键都是命令,在输入模式下
    可以输入字符。

    在刚用vi打开文档时,都是普通模式,本文就介绍如何快速记住一些最基本的操作命令。

    先讲讲在普通模式下的光标移动。

    当你的打字速度到达一定境界时,比如我:),我非常不喜欢把手移到小键盘或者方向键那里去,因为那个地方操作起来太慢严重影响我心情有木有,所以VIM就是为高效的人设计的,它充分认识到这一点,在VIM里上下左右风别被 j k h l 代替,

    h:在最左边,当然是左移动啦!
    l:同理,在最右边,右移动!
    j:当刚打开一个文件,是不是一般都在开头,要往下移动啊!标准指法里右手食指在J上,用的最频繁,因此就用J来往下移咯!
    k:有下移动当然得下移动,就在J旁边吧,多好记!
    但是每次只移动一个,好麻烦!
    如果我要往下移动五行,按五次不是要累死我,而且磨损键盘!
    高效的VIM当然已经解决问题,
    在hjkl前加数字,比如3j就是向下移动三行,3l即使向右三行啦!

    但是虽然hjkl移动很方便,但是只能逐个字符移动,好不爽,我想一个一个单词的移动,
    w 可以解决,你用w就可以很方便的每次移动单词,
    怎么记住这个快捷键呢,w就是word的缩写啊,亲!
    w是向右移动一个单词,想移动多个单词,和上面一样加个数字就可以来,3w向右移动三个单词。
    能向右移还得向左移动啊,b可以解决这个问题,b是back的缩写,后退一个单词嘛!3b的意思你懂的。
    随便这里提下,w在移动过程中是每次光标都停留在单词的首字符,想让光标在移动中停留在尾字符或者
    在一个单词中想跳到单词的尾字符,用“e”,end嘛

    简单的移动掌握上面几个键就可以了,当然还得知道有时候我想快速移动到一行的开头和结尾怎么办呢,
    数字“0”,第0个字符的意思,就可以将光标移到一行开头处,符号“$”,就是美元的符号,移动到行尾。

    移动先介绍这么几个常用的,再讲讲文本操作

    对文本的操作,当要求不怎么高时,无非就是插入文字,修改文字,删除文字,或者复制剪切粘贴这么几种。

    插入文字,因为是insert,快捷键就是“i”,但是用你想在一行末尾插入的时候,用i就蛋疼了,因为i是在光标
    前面插入字符,所以末尾插入字符就等于在倒数第二个字符的地方插入了!这时候要用”a“,a和i的功能完全一样,
    add的缩写,增加的意思,在光标的后面插入字符。
    有时候,特别是敲代码的时候,我们要另起一行对吧,在上一行的任意位置按“o”,open new line ,哈哈,你已经在
    新的一行插入文字咯

    修改文字,change,快捷键“c”,不过在普通模式下你按一个c没反应,为啥?你还没告诉VIM你要修改的对象呢,
    光标停在那里,我是修改这个单词呢,还是要修改一整行呢。
    cw,w是移动一个单词的快捷键,cw的意思就是对光标当前所在出到这个单词的结尾修改,cb的意思我就不说了。
    那c2b呢?,嘿嘿,从光标往前两个单词修改!
    c0,c$,分别是光标到本行开头和结尾的所有文本修改。

    发现奥妙了吧,移动命令和文本操作命令可以搭配起来用有木有,这正是VIM最强大的地方,各个命令可以组合使用。
    其实我们可以这么考虑,在移动命令中,如果按照word里边按住shift的思维,移动是不是就等于选中?移动的轨迹就是
    文本的选择对象!所以在vim里一般的命令格式为
    (command)(number)(text object)
    command就是对文本的操作,“c”是修改,“d”是删除,“y”是复制等,number + text object 组合起来就是命令
    所要操作的文本对象啦!
    比如d2h,d是删除,2h是往左两个字符,那d2h就是删除光标左边的两个字符咯!
    举一反三,各种组合等你实际应用中再用吧。

    现在比如我有一个单词,love,不小心写成了loce,要把c改成v,如果我们用命令“c”的话,我们需要先定位到e,然后
    c1h,改一个字符用得着这么麻烦嘛?当然不用,把光标移动到”c”上,输入rv即可!r是replace,也是替换对吧,他的功能就是
    替换一个字符,在r后面跟着的v就是新文本。很方便对不,~~~……
    对应删除d,要删除一个字符,用x就可以了! x就是小学老师给我们打的大叉叉么,嘿嘿。

    有时候我们不小心手贱,安了一个x,想撤销怎么办?
    vim当然已经给我们考虑好了,你按“u”,u即是undo,就跟word一样,多次按u就是撤销多次哦~

    插入修改删除我们都会了,下面我们来讲怎么剪切复制粘贴呢?
    这时候我们要用到“p”命令,p就是place嘛,放置的意思。
    前面我们说了删除命令“d”和“x”,其实删除就是剪切嘛,这些被删除的文本会被放到缓冲区中,
    ”p“命令会将缓冲区的中文本加入到当前光标的后面,如果我们用了d3j删除了3行,对于多行的文本,
    p会放置在当前光标的下一新行。
    对于x,有个妙用,还是用love这个单词吧,如果我输入成了loev,那我只要把光标移动到“e”上,然后xp就搞定了!
    呵呵,x先把当前字符给删除了,这时候光标在“v”,然后我们用p把“e”放到“v”后面,就完成两个字符的对掉啦。
    剪切粘贴你也会了,复制怎么办呢,用”y“,比如yw,复制了一个单词,到想要放置的地方,p就好啦。

    还得介绍几个非常规的组合。
    cc,c更改,两个c算啥?两个c代表更改一整行
    dd,删除一整行,
    yy,复制一整行

    VIM 是对命令的大小写敏感的,上面介绍的全是最基本的小写指令,下面来看看那大写命令的快捷之处!

    想到本行的开头插入吗?用“I”
    想到本行的末尾插入吗?用“A“
    想在本行的上一行新开一行写代码吗?用“O”
    想把剪切后者复制的文本放在光标之前吗?用“P“
    想在移动过程中撇开那些烦人的标点嘛?用“W”,“B”,“E”

    C是c$的缩写,即是从当前光标到本行末尾的所有文本更改
    D是d$的简写

    现在我有两行句子:

    I love you ,please
    come back.

    上述两个句子应该在同一行对吧,我不用吧光标移动到第二行,然后按i进入插入模式,然后再来个退格键。
    我只需吧光标移到第一句,用一个”J“就搞定了~

    在英文中每个句子的开头第一个字母要大写对吧,万一我当时没大写然后我要改呢,传统做法,把光标移动上去,
    然后rA,文艺青年,把光标移动到上面,用“~”搞定,这个符号在“1”的左边,按住shift键。

    再介绍一个有用的命令,“.”,就是句号,vim会记住你上次操作是什么,然后用“.”就可以重复执行上次命令!

    学完上述这些基本操作,就可以在黑乎乎的屏幕上装逼一把啦~!
    当然vim的功能远远超过这些。

    一个一个字的打出来的,真心累,输入法 又不给力。。。

    转自 http://cryinstall.com/?p=104

  • 相关阅读:
    python 执行sql得到字典格式数据
    python爬虫 url链接编码成gbk2312格式
    windows环境下elasticsearch安装教程(单节点)
    python SQLServer 存储图片
    爬虫的本质是和分布式爬虫的关系
    requests form data 请求 爬虫
    mysql 删除 binlog 日志文件
    查看mysql数据表的大小
    xshell 连接报错 Disconnected from remote host
    centos 7.3 安装 mysqldb 报错 EnvironmentError: mysql_config not found ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  • 原文地址:https://www.cnblogs.com/loongqiang/p/3430510.html
Copyright © 2011-2022 走看看