练习-vim的使用

vi编辑器是linux上最常用的编辑器,vim是vi增强版,

一、vim的几种模式

    编辑模式、插入模式、命令行模式   

 编辑模式:可以进行光标移动,字符删除,行的增删复制粘贴等操作
 插入模式:对字符进行编辑,
 命令行模式:通过各种命令进行保存,查找,替换,环境设置等操作

    模式的切换

默认vim打开时处于编辑模式,使用a,A,i,I,o,O进行插入模式
当入于插入模式时,左下角会显示insert,使用esc键,回到编辑模式
在编辑模式下使用:进入命令行模式,最下行将显示输入的命令,使用ESC键,回到编辑模式

二、文件操作

vi filename #使用编辑器打开文件
:w          #保存文件
:w filename #保存到某个文件
:q          #退出,文件未被修改时可直接退出,已经修改时会报错
:q!         #退出不保存
:wq         #退出并保存

三、光标的定位

   单个字符定位

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

   单词定位

w   #下一个单词首部
b   #当前或上一个单词首部
e   #当前或下一个单词尾部

行定位

^        #定位到行首
0        #定位到行首第一个非字空字符
$        #定位到行尾
G         #定位到文档尾部
gg         #定位到文档首部
#g         #定位到第#行

屏幕定位

    H     #光标定位到屏幕顶部
    M     #光标定位到屏幕中间
    L     #光标定位到屏幕底部
    zt    #将光标所在行,翻屏至屏幕最顶部
    zz    #将光标所在行,翻屏至屏幕中间
    zb    #将光标所在行,翻屏至屏幕最底部

四、进入插入模式

在编辑模式下使用a,A,i,I,o,O进行插入模式,各快捷键的作用如下 :

a    #在光标位置的右边插入字符
i    #在光标位置的左边插入字符
A    #在光标所在的行尾插入字符
I    #在光标所在的行首插入字符
O    #在光标所在行的上面插入一行
o    #在光标所在行的上面插入一行
R    #替换光标所在位置和后面的文本

五、删除、复制、粘贴

       dd    #删除当前的整行
       d$    #删除光标到行尾的内容 
       d0    #删除光标到行首的内容,包括行首的空白字符
       d^    #删除光标到行首的内容,不包括行首的空白字符
       #dd   #删除包括光标所在行向后#行
       dw    #删除光标到单词尾部,包括单词尾部的空格
       de    #删除光标到单词尾部,不包括单词尾部的空格和标点符号

      剪切功能

 #在使用dd删除整行后,vim会将删除内容放在寄存器中,
 #此时使用p命令会在光标所在的下一行,插入dd所删除的行

      复制

yy   #复制当前行
#yy  #复制从当前行往后的#行

     粘贴功能

#使用p命令将复制的内容在下一行开始粘贴

六、查找

      要编辑模式下输入/string, 对string字符串进行查找

       n    #查找下一个
       N    #查找上一个

      使用?string代替/string,可实现逆序查找

        %    #光标放在一个括号上时,可查找配对的括号

七、替换

    :s/old/new     #在一行内替换第一个匹配到的old为新的字符串new  
    :s/old/new/g    #在一行内替换所有的old为new 
    :%s/old/new/g   #在文件内替换所有old为new 
    :%s/old/new/gc   #加c,在替换时询问用户是否替换

八、其它命令键

    ctrl + g   #显示当前行信息,
    u          #撤销
    ctrl + r    #撤销后重做
    ctrl + f    #下翻页
    ctrl + b    #撤销后重做
    :set num    #显示行号

原创文章,作者:N21-沉舟,如若转载,请注明出处:http://www.178linux.com/21510

(0)
N21-沉舟N21-沉舟
上一篇 2016-07-04
下一篇 2016-07-04

相关推荐

  • 正则表达式

    1、用正则表达式表示IP地址 扩展正表达式表示的: (\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\> 2、用正则表达式表示手机号 "^1[3578…

    Linux干货 2016-08-07
  • haproxy 实战之haproxy实现httpd负载均衡

    haproxy 实战之haproxy实现httpd负载均衡 实验目的haproxy + httpd实现负载均衡 1.准备机器,做好时间同步,域名主机名解析 192.168.42.151 [node2 haproxy] 192.168.42.152 [node3 httpd] 192.168.42.153 [node4 httpd] 2.node3,node4…

    Linux干货 2017-06-29
  • 二、(3)Linux的文件与数据之:元数据

    文件的元数据 在Linux的文件系统中,数据可分为两大类:数据和元数据 数据:泛指普通文件中的实际数据 元数据:用来描述一个文件的特征的系统数据 这样抽象的描述并不能很清楚地表示元数据的定义,所以下面将借助stat命令进行举例说明: stat命令 stat – display file or file system status(用于展示文件或文…

    2018-01-11
  • FHS文件系统各目录功能

    前言:     文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。linux的哲学是一切皆文件,linux系统中的一切包括设备文件,我们都能在linux的倒置树状文件系统中找到相对应的文件。所以清楚的明白根目录下的每个子目录包含什么样的文件是很有必要的。我们将以Filesystem Hierarchy Standar…

    Linux干货 2016-10-17
  • rsync+inotify实现数据实时同步备份

    定时备份和实时备份        说到备份,无疑于定时备份和实时同步备份。定时备份可以通过脚本或者Crontab来实现,而实时同步备份可以通过某些接口监控文件的各种变化情况来实现的(比如内核接口inotify);通过对比可以发现对数据信息要求高的环境使用实时同步备份可以更好更有利的保护数据的安全性。 软件介绍之rsyn…

    Linux干货 2015-02-28
  • 脚本又见脚本,作业又是作业_第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@centos ~]# fdisk -l &n…

    Linux干货 2016-12-30

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-04 13:41

    写的很好,总结的有点少,是不是还有一些,加油