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
下一篇 2016-08-10

相关推荐

  • linux 基础命令总结——文件类命令

    <span style="font-size: 18px;">linux 基础命令总结——文件类命令</span> #wmd-preview h1  {    color: #0077bb; /* 将标题改为蓝色 */} linux 基础命令总结——文件类命令 命令总结 文件类命令 l…

    Linux干货 2016-06-26
  • CentOS上配置rsyslog客户端用以远程记录日志

    rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件…

    Linux干货 2015-02-14
  • Centos 7&6分布式lamp平台

    Centos 7&6分布式lamp平台 Centos 7&6分布式lamp平台 一、环境介绍 lamp的实现方式 本文安装方式 二、Centos 7 分布式lamp平台,module方式 安装httpd和php xcache phpMyAdmin wordpress https的phpMyAdmin 环境规划 主机2配置mariadb 主机1…

    Linux干货 2016-04-25
  • MAN 手册各章节功能及快捷键键位介绍

      man命令在linux下属于一种帮助命令,man手册提供了比较齐全的帮助格式,它大致分为8个章节 一.各个章节如下 1 – commands 1-普通的命令 (用户命令,  可由任何人启动的) 2 – system calls 2-系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函…

    Linux干货 2016-10-17
  • shell脚本编程初步入门

    shell脚本编程初步入门    说到shell脚本编程,那我们就来先看下shell,shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统内核的一部分,但它调用了系统核…

    Linux干货 2016-08-15
  • 文件通配符练习

    课后资料补充 * : 通配符,代表任意字符(0到多个)? : 通配符,代表一个字符# : 注释/ : 跳转符号,将特殊字符或通配符还原成一般符号| : 分隔两个管线命令的界定; : 连续性命令的界定~ : 用户的根目录$ : 变量前需要加的变量值! : 逻辑运算中的&q…

    Linux干货 2016-08-08