vim编辑器

vim编辑器    模式化编辑器                                           #vimtutor    vim自带练习教程 !

基本模式:
        1.命令模式 2.插入模式 3.扩展模式
  
#vim filename
    +#  打开文件后 让光标处于#行的行首
    +/PATTERN    打开文件并使光标处于第一个匹配到的行的行首
    +  file    直接打开file,光标在最后一行
    -b file    二进制方式打开文件
    -m file    只读打开文件

    -d file1 file2…   比较多个文件

 锁定和解锁:CTRL+s,Ctrl+q

===基本操作:

 1.模式转换:
    命令模式(默认)==> 插入模式
  
     i:     insert 光标所在处输入
     I:    光标所在行行首输入
    a:    append 光标所在处后方输入
    A:    光标所在行行尾输入
    o:    光标所在下方新建一行
    O:    光标所在上方新建一行

  插入模式–>命令模式:
    ESC

  插入模式–>扩展模式:
    :

  扩展模式–>命令模式:
    ESC
 
 2.保存退出文件:
    命令模式下
        ZZ:保存并退出 
        ZQ:不保存退出
  
   扩展模式下:
        :q  退出
        :q! 强制退出  不会保存编辑操作
        :wq 保存并推出
        :x  保存并退出
            :w  /PATH 另存为
 
 
 3.光标跳转:    命令模式下:
  字符间跳转:
        h左  j下  k上  l右  #前可加数字# 表示跳转#个单位

  单词间跳转:
        w 下一个单词 词首
        b 前一个单词 词首   若不在 当前单词词首 则先跳转到当前单词词首
        e 下一个单词 词尾   同上
        #前可加数字# 表示跳转#个单词

  行首行尾跳转:
        ^ 跳转至行首 第一个 非空白字符处
        0 跳转至行首 TAB除外
        $ 跳转至行尾

  行间跳转:
        #G 跳转至#号行
        1G|gg    第一行
        G   跳转至最后一行
   
  句间跳转: 支持加数字
        )
        (
  段间跳转: 支持加数字
        }
        {
  
  当前页跳转:
        H:页首
        M:页中间行
        L:页底 
   
 4.翻屏:
        ctrl+f 向文件 尾部 翻一屏
        ctrl+b 向文件 首部 翻一屏
  
        ctrl+d 尾部 半屏
        ctrl+u 首部 半屏
  
        enter:按行向后翻
  
  

=== vim命令模式下:

 1.字符编辑
        x 删除 光标所在处 字符       向后
        #x  删除 光标所在处 向后#个字符
 
        xp 交换 光标所在处 与其后一个字符 的位置
  
        ~ 转换大小写

 2.替换
        r  CHAR  替换光标所在处字符
        R    切换成REPLACE模式
 
 3.删除(delete)
        d 删除 可结合光标跳转字符
        dd 删除 光标所在行       #dd 加数字 删除共#行
        d$:  删除 光标所在处到 行尾的字符
        d^:  删除 光标所在处到 行首的字符
        d0:  删除 光标所在处到 "行首"的字符
        D:从当前光标位置一直删除到行尾,留空行,等同于d$
   
        dG 删除 当前光标位置到 尾行
         dg 删除 当前光标位置到 首行
     
        dw  |
        de  | 结合 跳转字符 选定区域
        db  |
   删除的内容保留在缓冲区 可粘贴最后一个

 4.复制(yank)
        y 复制,
        Y 复制整行
        yy 复制整行
        y$
        y^
        y0

  类似d删;   
        ye  |
        yb  | 结合 跳转字符 选定区域
        yw  |

 5.粘贴(paste)
    小写p 粘贴缓冲区(包括d最后删除的行) 中的内容如果为 整行粘至 光标所在行 下一行,
        否则粘贴到 光标所在处 后方
    大写P   粘贴缓冲区(包括d最后删除的行) 中的内容如果为 整行粘至 光标所在行 上一行,
        否则粘贴到 光标所在处 前方

 6.改变(change)   编辑模式–>插入模式
        c 对 选定区域 执行操作后,进入 插入模式
        cc  删除 整行并进入 插入模式
        c$
        c^
        c0
   
        cb   |
        ce   | 结合 跳转字符 选定区域
        cw   |
  
 7.可视化模式(visualization)   类似 鼠标选定 效果; 选定区域后可执行操作
        v 按 字符 选定
        V 按 行   选定
        ctrl v  块选定
  
      结合编辑命令 d,p,c 执行相应操作
 
 8.撤销(undo)
        u 撤销上一步操作    可连续执行  默认50个
        #u 撤销此前 #次操作   结合数字    3u:撤销最近3次操作
        U 撤销光标所在行所有动作
  
 9.恢复(recovery);    撤销 之前的撤销
        Ctrl+r
 
 10.重复执行上一步操作  点号
        "."
        #.    #次

= 100izhou [ESC] 粘贴 zhou 100次
 
 <start position>   CMD  <end position>
 Command: y 复制、d 删除、gU 变大写、gu 变小写
 例如 0y$ 命令意味着: 拷贝全文
  ye 从当前位置拷贝到本单词的最后一个字符
  
=  26个命名寄存器和 1个无命名寄存器,
 存放不同的 剪贴版内容,可以不同会话间共享。
 用a,b,…,z表示,用“寄存器表示,放在数字和命令之间
  如:3"tyy 表示复制3行到t寄存器中
  "tp  表示将t寄存器内容粘贴
 

=== vim扩展模式:     内建的命令行接口;

  命令模式下     ":" 进入

 1.定位
        #[,#]
        .             当前行
         %         全文
        # 特定第#行           :5     第5行
        #,# 指定范围行      :3,7   3到7行
   
        #,+#   指定起始行 及偏移量       
                 :4,+6   4到10行   :.,$  当前行到最后一行
     
        /pat/: 从光标所在处起始 向文件尾部第一个被匹配到的行
        /pat/,$  从光标起始 向文件首部
    
        /pat1/,/pat2/  从光标处起始,第一次pat1匹配到的行 到 第一次pat2匹配到的行
   
   选定区域 可结合编辑命令使用
        c 修改
        d 删除
        y 复制
        w /PATH  另存为
        r /PATH  将指定文件中的文本 读取插入指定位置
 
 
 2.查找
        /str          从光标处 向文件尾部 查找匹配的字符串
        ?str         从光标处 向文件首部 查找匹配的字符串
        n:         下一个,与命令方向相同
        N:        上一个,与命令方向相反
   
   
 3.查找并替换
        :s/要查找内容/替换为的内容/修饰符
            "要查找的内容": 可使用正则标表达式
            "替换的内容": 不能使用正则表达式    可引用
            "要查找的内容"使用了 分组,在"要替换的内容"中可后向引用
        s/pat/&str/g 未使用分组,可直接引用全部内容  &
  修饰符:
        i 忽略大小写
        g 全行替换    因为默认只匹配每行的第一个
 

:!command 不退出vi  执行某个命令
:r!command 读cmd的stdout到当前位置

==

 = 以二进制方式打开文件
   vim –b binaryfile
  扩展命令模式下,利用xxd命令转换为可读的十六进制
        :%!xxd  编辑二进制文件
  扩展命令模式下,利用xxd命令转换回二进制
        :%!xxd -r
 
 
= 同时打开多个文件: 
  vim FILE1 FILE2 FILE3 …
        :next 下一个
        :prev 前一个
        :first 第一个
        :last 最后一个
        :wall 保存所有
        :qall 退出所有
        :wqall 保存所有
   
 = 多文件分割 vim  -o|-O   FILE1 FILE2 …
        -o: 水平分割
        -O: 垂直分割
    在窗口间切换:Ctrl+w, 方向键
 
 = 单文件窗口分割:
        Ctrl+w,s: split, 水平分割
        Ctrl+w,v: vertical, 垂直分割
        ctrl+w,q:取消相邻窗口
        ctrl+w,o: 取消全部窗口
       :wqall 退出
   
***配置vim工作特性:

 配置文件:永久有效
    全局:/etc/vimrc
    个人:~/.vimrc

 (1) 行号
    显示:set number        简写为set nu
    取消显示:set nonumber  简写为set nonu
  
 (2) 括号成对匹配
    匹配:set showmatch, 简写为set sm
    取消:set nosm

 (3) 自动缩进
    启用:set ai
    禁用:set noai
  
 (4) 高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch

 (5) 语法高亮
    启用:syntax on
    禁用:syntax off
  
 (6) 忽略字符的大小写
    启用:set ic
    不忽略:set noic
  
 (7) 文件格式
    启用:set fileformat=unix
    不忽略:set fileformat=dos
  
 (8) 设置文本宽度
    :set textwidth=65 (vim only)  从左起
    :set wrapmargin=15  从右起
  
    :set all 查看可用设置  :set
    :help 帮助文档
 
  
  
 例   :%s/zjj/Zjj/ig  
    全文中zjj  z改为大写,
    查找时不区分大小写
    一行中匹配的多个全部替换
    
 例   分隔符///可替换  @@@ ###
   :1,40s#/etc/passed#/etc/shadow#i
    1到40行内 /etc/passwd  替换为 /etc/shadow
    查找时不区分大小写
    每行只替换第一个被匹配到的
  
 例   %s@\<t\([[:alpha:]]\+\k)\>@T\1@g
    全文中 小写t开头的单词  全部换位大写T

=== 当查找完后,想去除 匹配的 高亮,与之对应有两种常用的方法:

        1. 命令模式下,匹配一个更长或内容上没有的内容,使之覆盖原有匹配.

        2.  扩展模式下,输入noh,此时屏幕上原来的匹配已取消.

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

(0)
JasperJasper
上一篇 2016-08-10 10:27
下一篇 2016-08-10 10:27

相关推荐

  • Linux软件包管理之程序包编译安装

    程序包编译 程序包编译安装: Application-VERSION-release.src.rpm–>      安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装 源代码–>预处理–>编译(gcc)–>汇编&#82…

    Linux干货 2016-08-25
  • IP地址之IPv4

    一、概述   IP地址有IPv4和IPv6两个版本,目前我们通常所说的IP地址是指IPv4。   IP地址由32位的二进制数组合而成,为了方便人类记忆,将二进制转换成4个十进制的数值。   在这32位数据中分为网络号与主机号两个部分。 二、IP的分级   IP网段分为五个等级,其定义如下:   A类:规定前面…

    Linux干货 2016-02-14
  • 18页PPT带你深度解读运维自动化

    一、概述    在前面的文章中,提到【运维的本质—可视化】,在其中着重强调是自动化的可视化和数据化的可视化。在这个文章中,全面解码看看自动化的极致状态为什么是可视化?在前面的另外一篇文章【运维平台全体系介绍】中,也讲到运维平台体系的构成,提出“**及服务”的理念,其中有几部分和自动化密切相关,比如说资源及服务、配置及服务、架构…

    2015-04-03
  • 磁盘分区,文件系统的创建、修改和检测

        写博客,对我来说不仅是学习的过程,也是一个心理历练的过程,多说无益,开始吧!!!     博客是马哥视频里的博客作业:文件系统的创建、修改和检测。我就从磁盘管理开始把      环境:     创建的centos6.5虚拟机 &nb…

    Linux干货 2016-06-26
  • linux的CentOS系统启动故障与修复

        以CentOS 6为例,系统的启动流程为: 1.开机post加电自检 2.MBR引导 3.通过grub加载内核 4.加载根 5.加载系统中的第一个进程 6.进行初始化 7.出现登录界面     其中主要的启动环节是grub引导计算机,分为三个阶段:一阶段发生在mbr的446字节中;一点五阶段在mbr后续的扇区中…

    2017-09-03
  • 硬链接与软链接

    1、关于硬链接和软链接是什么   硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一。通过剖析硬链接与软链接的联系与区别,我们可更好的了解 Linux 中 VFS 这一通用文件模型。 (1…

    Linux干货 2016-10-20