Vim编辑器初步接触

一、概要

    vim(IMproved)编辑器是vi(visual interface)编辑器的增强版,它是Linux系统编辑文本文件重要的工具之一,也是最基础的编辑工具。它可以执行输出、删除、查找、替换、块操作等众多文本操作。学会它之后,你使用Linux系统的路将更加平坦。

二、使用方法

    1、vim操作模式

                (1),编辑模式(command mode):也叫做命令模式,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入输入模式(Insert mode)下,或者到末行模式。            

                (2),输入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按[ESC]键可回到命令行模式。

                (3),末行模式 (last line mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。vim内置的命令行接口,执行vim的内置命令。

    2、vim的基本操作

                (1),打开文件:vim [option]…【FILE】…

                (2),3种模式间的切换:

                                     a、在命令模式下使用【i】键进入输入模式;

                                     b、在输入模式下使用【ESC】键退出输入模式并进入命令模式;

                                     c、在命令模式下使用【:】键进入末行模式;例如

                      : w filename (输入 [w filename]将文章以指定的文件名filename保存)

                      : wq (输入[wq],存盘并退出vim)

                      : q! (输入q!, 不存盘强制退出vim)

                      : x (执行保存并退出vim)

   3、vim常用快捷键

       (1) 移动光标

                    vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母[h]、[j]、[k]、[l],分别控制光标左、下、上、右移一格。

                    按[ctrl]+[b]:屏幕往“后”移动一页。

                    按[ctrl]+[f]:屏幕往“前”移动一页。

                    按[ctrl]+[u]:屏幕往“后”移动半页。

                    按[ctrl]+[d]:屏幕往“前”移动半页。

                    按[gg]:移动到文章的首行。

                    按[G]:移动到文章的最后。

                    按[$]:移动到光标所在行的“行尾”。

                    按[O]: 移动到光标所在行的“行首”

                    按[^]:移动到光标所在行的“行首”的第一个非空白字符。

                    按[w]:光标跳到下个字的开头

                    按[e]:光标跳到下个字的字尾

                    按[b]:光标回到上个字的开头

                    按[#l]:光标移到该行的第#个位置,如:5l,56l。

       (2)编辑文本

删除

                    [x]:每按一次,删除光标所在位置的“后面”一个字符。

                    [#x]:例如,[6x]表示删除光标所在位置的“后面”6个字符

                    [X]:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

                    [#X]:例如,[20X]表示删除光标所在位置的“前面”20个字符。

                    [dd]:删除光标所在行。

                    [#dd]:从光标所在行开始删除#行。

                    [yw]:将光标所在之处到字尾的字符复制到缓冲区中。

                    [#yw]:复制#个字到缓冲区

复制

                    [yy]:复制光标所在行到缓冲区

                    [#yy]:例如,[6yy]表示拷贝从光标所在的该行“往下数”6行文字。

                    [p]:将缓冲区内的字符贴到光标所在位置。

恢复上一次操作

                   [u]:如果您误执行一个命令,可以马上按下,回到上一个操作。按多次“u”可以执行多次回复。

                   [ctrl+r]:撤销此前的撤销操作

                   [.] :重复前一条命令

 修改

                    [cw]:更改光标所在处的字到字尾处

                    [c language=”""""""#w""""""”][/c]:例如,[c3w]表示更改3个字

 查找和替换

                    #:查找第#行

                    .:查找当前行

                    $:查找最后一行

                    %:全文查找,相当于1,$

                    g:global,全行替换

                     i:不区分字符大小写

在末行模式下查找和替换的格式:s/查找模式/要替换成的内容/gi

            a、查找模式:可以使用正则表达式

            b、要替换成的内容:不能使用模式,仅能使用引用

           举例说明:

               复制/etc/rc.d/init.d/functions至/tmp目录,替换/tmp/functions文件中的/etc/sysconfig/init为/var/log

                                                           :   cp /etc/rc.d/init,d/function /tmp

                                                           :  vim /tmp/functions

1428037829688364.png

                                                           :%s@/etc/sysconfig/init@/var/log@gi

1428037831448440.png

通过上图已经看见/etc/syscongfig/inint已经全部被替换成/var/log。

此外,vim也是一个多窗口、多文件的编辑器;     

多文件模式:

    :next,进入下一个文件

    :previous,进入上一个文件

    :last,进入最后一个文件

    :first,进入第一个文件

    :wqall,保存并退出所有文件

多窗口模式:

      -o:水平分割

      -O:垂直分割

      窗口间切换:ctrl+w+方向键

窗口属性定义:

    :set nu,显示行号

    :set nonu:不显示行号

    :set ai 自动缩进

    :set ic:忽略字符大小写

    :set noic:不忽略字符大小写

语法是否高亮:

        syntax on|off

搜索是否高亮:

        set nohlsearch|hlsearch

以上是vim编辑器的初步了解,通过以后的学习会更加深入!!

原创文章,作者:傲剑,如若转载,请注明出处:http://www.178linux.com/2472

(0)
傲剑傲剑
上一篇 2015-04-03 15:13
下一篇 2015-04-03 19:53

相关推荐

  • iptables实现地址转换

    NAT:(工作在网络和传输层) 过载技术 Basic NAT:静态NAT     一个内部主机,分配一个外网地址 NAPT:动态NAT,网络地址端口转换;net会话表     源地址转换:SNAT 用于内网主机访问互联网    &…

    Linux干货 2016-10-31
  • DevOps如何重构IT战略

    翻译: 至尊宝 原文: http://www.citeworld.com/article/2897738/development/how-devops-can-redefine-your-it-strategy.html?page=2   DevOps究竟是昙花一现还是你一直在寻找的竞争优势?我们咨询了一些专家,对于这种趋势他们的想法是什…

    Python干货 2015-03-26
  • Nginx负载均衡和动静分离

    实验目的:实现Nginx的负载均衡和动静分离 实现环境:一台server用作Nginx代理(需要两块网卡,eth0连接内网,eth1连接外网),两台用作web服务(每台server都定义两个虚拟机,端口分别是80和8080),一台客户端用于验证结果; 操作步骤 负载均衡的实现: 一、配置IP 1.配置A主机的IP # ip addr add dev eth0…

    2017-05-13
  • SQL Server 2012 故障转移群集最佳实践

    一、Windows server  2012 系统主域的安装配置 功能介绍:  SQL Server 故障转移群集在网络上显示为一台计算机上的单个 SQL Server 实例。在群集内部,一次只有一个节点拥有群集资源组,满足针对该故障转移群集实例的所有客户端请求。在出现故障(硬件故障、操作系统故障、应用程序或服务故障)或进行计划升级时,组…

    Linux干货 2015-10-27
  • 理解Inode

    inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。 下面就是我的inode学习笔记,尽量保持简单。 一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最…

    Linux干货 2015-03-20
  • Systemd——CentOS7的init

    Systemd:     POST –> Boot Sequeue(BIOS) –> Bootloader(MBR) –> kernel(ramdisk) –> rootfs –> /sbin/init init:   &nbsp…

    Linux干货 2016-09-20

评论列表(2条)

  • stanley
    stanley 2015-04-03 15:23

    可以尝试14号字体,文章的优美度会提升不少。另外记得加上标签提高搜索命中率哦

    • jxf_tide
      jxf_tide 2015-04-07 09:04

      @stanley好的,,以后会注意