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基础入门

    1、描述计算机组成及其功能 计算机组成主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备 ENIARC: CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory)         Input:下指令,提供数据等 Output:输出数据加工的结果         &…

    2017-12-02
  • 8月8日作业

    4、如何设置tab缩进为4个字符?    编辑用户工作目录下.vimrc文件,使vim基础设置对个人用户生效,或者编辑/etc/vimrc文件,使配置对系统全部    用户生效。    set tabstop=4 5、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/…

    Linux干货 2016-08-12
  • 从Linux小白到大牛——与狼共舞的日子11

    马哥教育网络班21期+第10周课程练习 1、详细描述一次加密通讯的过程,结合图示最佳。 加密过程 1.使用单向加密算法,提取A的文件的特征码。 2.使用A的私钥对提取出来的特征码进行加密,把加密后的特征码附加在A的文件的后面。 3.使用对称加密对刚刚的A的文件和加密后的特征码进行加密,生成对称加密密钥 4.使用B的公钥对第3步骤的对称加密的密钥进行加密,加密…

    Linux干货 2016-12-05
  • 第二十六天 iptables 初识

      Iptables是位于用户空间,是linux系统上的防火墙管理配置规则的工具,主要用于添加、删除、管理netfilter的规则,   Netfilter是位于内核中真正的防火墙,由5个钩子组成,也叫五个规则链。 Netfilter的作用:起到过滤封包,转换与映射IP地址和端口,拆分和修改封包内容,追踪封包等功能 Iptabl…

    Linux干货 2016-07-02
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 答:     复制目录:cp -R /etc/skel /home/tuser1     修改权限:chmod -R go=- /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2016-12-07
  • Linux常用文件管理命令

    常用文件管理命令 cat cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容 语法 cat(选项)(参数) 选项 -n或-number:有1开始对所有输出的行数编号; -b或–number-nonblank:和-n相似,只不过对于空白行不编号; -s或–squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行; …

    2018-03-11