Linux10编辑器vim

Linux-vim

vim简介

vi:Visual Interface 文本编辑器
文本编辑种类

行编辑器:sed
全屏编辑器:nano vi
vim –vi improved
其他编辑器
gedit 一个简单的图形编辑器
gvim 一个vim编辑器图形版

     命令:vim [option]...file
     选项:
          +#:    打开文件后,让光标处于第#行的行首,+默认行尾
   +/pattern:    打开文件后,让光标处于第一个被正则表达式模式匹配的行的行首
     -b file:    二进制方式打开文件
-d file file2...:比较多个文件
     -m file:    只读打开文件,不能修改,避免误操作
 ex file或vim -e:直接进入ex模式

vim的三种模式及应用

命令模式:默认模式,移动光标,剪切、粘贴文本

            ZZ:保存退出
            ZQ:不保存退出

字符间跳转:

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

单词间跳转:

            w:下一个单词词首
            e:当前或下一个单词的词尾
            b:当前或前一个单词的词首
         #cmd:由#指定一次跳转的单词数

当前页跳转:

            H:页首
            M:页中间行
            L:页底

行首行尾跳转:

            ^:跳转至行首的第一个非空白字符
            0:跳转至行首
            $:跳转至行尾

行间移动:

           #G:跳转至由#指定的行,支持扩展命令
            G:最后一行
       1G,gg:第一行

句间移动:

           ):下一句
          ( :上一句

段落间移动:

           }:下一段
          {:下一段

翻屏操作

      Ctrl+f:向文件尾部翻一屏
      Ctrl+b:向文件尾部翻一屏
      Ctrl+d:向文件尾部翻一屏
      Ctrl+u:向文件尾部翻一屏

字符编辑:

          x:删除光标出的字符
         #x:删除光标出起始的#个字符
         xp:交换光标所在处前后字符换位置
          ~:转换大小写
          J:删除当前行后的换行符,将两行合并成一行

替换命令

          r:替换光标所在处的字符
          R:切换成replace模式

删除命令:d+移动选项,支持#定数

          d:结合光标跳转字符,实现范围删除
         d$:删除到行尾
         d^:删除到非空行首
         d0:删除到行首
         dd:删除光标所在行
          D:从当前光标位置一直删除到行尾,留空行,等同于d$

复制命令:y+移动命令,支持#定数

         Y:复制整行
        yy:复制行

粘贴

         p:缓冲区为整行,则粘贴在光标所在行下方否则,粘贴在当前光标所在处的后面
         P:缓冲区为整行,则粘贴在光标所在行上方否则,粘贴在当前光标所在处的前面

改变替换:c+移动命令,支持#定数

         修改后切换成插入模式
        cc:删除当前行并输入新内容,相当于S
         C:删除当前光标到行尾,并切换成插入模式

撤销更改

         u:撤销最近的更改
        #u:撤销之前多次更改
         U:撤销光标在这行后所有此行的更改
   ctrl -r:重做最后的撤销更改
         .:重复前一个操作
        n.:重复前一个操作n次

命令模式其他操作:

1:#num+i+string [esc] +p
   粘贴string字符串#次

2:<开始位置><选项><结束位置>
    选项  y:复制
         d:删除
        gU:变大写
        gu:变小写   

插入模式:修改文本

     i:光标处开始编辑
         I:光标跳到行首开始编辑  
         a:光标往后一个字符开始编辑
         A:光标跳到行尾开始编辑
         o:向下新建行开始编辑
         O:向上新建开始编辑

扩展命令模式:命令模式输入[:]进入扩展命令模式

        wq:存盘退出
         x:保存退出
         q:没有改动直接退出
        q!:改动不想保留,直接退出
      !cmd:在不退出vim情况下执行命令
     r!cmd:读入命令输出到vim
   r+filename:将文件复制到当前vim中
   w+filename:写入文件到指定地方

地址界定

格式:选项+编辑命令
选项:start_pos,end_pos支持正则表达式
          #:具体第#行,例如2表示第2行
       #,#:从左侧#表示起始行,到右侧#表示结尾行
      #,+#:从左侧#表示的起始行,加上右侧#表示的行数,如2,+3表示2到5行
          .:表示当前行
          $:最后一行.,$-1当前到倒数第二
          %:全文,相当于1,

编辑命令:
          d:删除
          y:复制
     w file:将范围内的行另存至指定文件
     r file:在指定位置插入指定文件

查找

命令匹配
    /pattern :从当前光标所在处向文件尾部查找
    ?pattern:从当前光标所在处向文件首部查找

结果查看
         n:与命令同向搜索
         N:与命令反向搜索

替换

格式:
        s/查找的内容/替换为的/修饰符

备注:
1、查找的内容可使用模式,替换内容不能使用模式,但可以使用后项引用,也可以使用&引用前
   面查找的整个内容
2、分隔符/可以替换,如@,#,防止特殊写法   

修饰符:
         i:忽略大小写
         g:全局替换,默认情况每一行只替换第一次出现的
        gc:每次替换前询问

vim的寄存器

具名与无名寄存器
26个具名的寄存器和1个无命名寄存器,常存放不同剪贴版内容,可以不同会话之间共享。

用法:  [数字] [单个双引号] [寄存器] [命令]  
       1、具名寄存器名称以[a...z]单个小写字母表示  
       2、不加寄存器名称,将使用无命名寄存器

    例如:3"tyy表示复制3行到t寄存器
          "tp表示将寄存器内容粘贴

数字寄存器
0-9,缓存最近操作的内容,0寄存器缓存最近一次复制的内容,1-9缓存最近9次删除的内容

用法:
也是最常用的 从0-9。 如果不指定寄存器的名字,那么删除的内容,vim默认是存到 1 ,>>>复制内容是存到 0 号寄存器。 如果继续删除,那么原来 1 的内容就转到 2,类推,当删>>>除超过9的时候, 原先的 8号数字寄存器就转到9, 原先9的数字寄存器内容就会丢失。

         格式: [单个双引号] [数字] [命令]

编辑二进制文件

         格式:  vim -b  binaryfile
         用法:  扩展命令模式下输入以下命令
                %!xxd:  将文件转换为可读的十六进制
              %!xxd-r:  转换回二进制

可视化模式激活方式

模式类型 激活方式 选择效果
字符文本 v(小写) 逐个字符选择
行文本 V(大写) 逐行选择文本
块文本 ctrl+v(小写) 按照块的方式选择

用法:
可视化键可与移动键结合使用被选择的文字可被删除、复制、变更、过滤、搜索、替换等

多文件模式
使用vim一次打开多个文件

        格式:vim  file1  file2  file3...
        用法:扩展命令模式下输入以下命令
             next:   下一个
             prev:   前一个
            first:  第一个
             last:   最后一个
             wall:   保存所有
             qall:   退出所有
            wqall:  保存退出所有

使用多个窗口

多文件分割

        vim -o|-O  file1 file2...  
        参数:
            -o:水平分割
            -O:垂直分割
        命令模式下:
        ctrl+w:窗口间切换

单文件窗口分割

             命令模式下
                 ctrl+w,s:水平分割
                 ctrl+w,v:垂直分割
                 ctrl+w,q:取消相邻窗口
                 ctrl+w,o:取消全部窗口
            扩展命令模式下
                    wqall:退出

定制vim的工作特性

配置文件:永久有效

                全局:/etc/vimrc  
                个人:~/.vimrc

扩展模式:当前vim进程有效

启用 禁用 效果
set nu set nonu 行号
set ic set noic 忽略大小写
set ai set noai 自动缩进
set si set nosi 智能缩进
set hesearch setnohlsearch 高了搜索
syntax on syntax off 语法高亮
set list set nolist 显示tab、^I、$
set textwidth=65 set wrapmargin 设置文本宽度
set cursorline set no cursorline 光标表识线
set paste set nopaste 复制保留格式
set ff=dos 启用windows格式
set ff=unix 启用Unix格式

猜你喜欢

转载自blog.csdn.net/free050463/article/details/81475015