vim编辑器

从今天开始,多晚都是早;从明天开始,多早都是晚

 

vi:Visual Interface,文本编辑器

文本:ASCII,Unicode

VIM:vi的增强

 

vim [option]... [file]...

    +[num] 打开文件,光标在num行,只有一个+,打开文件,光标在文件尾部

    +/{pat} 打开文件,光标跳转到模式匹配处

 

vimtutor,vim编辑器教程

 

VIM编辑器的模式

命令模式(编辑模式)

字符间跳转

    h

j

k

l

上下左右键也可以完成跳转

n l 跳转指定个数(n个)的字符

n -> 向右跳转指定n个字符

 

单词之间的跳转

    w 下一单词的词首

    e 当前或下一个单词的词尾

    b 当前或前一个单词的词首

    n w|e|b 指定跳转的单词数n

行首未跳转

    ^ 跳转至行首的第一个非空白字符

    0 跳转至行首

    $ 跳转至行尾

 

行间移动

    n G 跳转至第n行

    G 跳转至行尾

    1G或gg 跳转至第一行

 

段落间移动

    { 光标移至段落开头

    } 光标移至段落结尾

 

字符编辑

    x 删除光标处的字符

    n x 删除光标处及向后n个字符

    xp 交换光标所在处的字符及后面字符的位置

删除命令

    d 结合光标跳转字符,实现范围删除

        dd 删除光标所在的行

        2dd 光标向下,实现(2行)多行删除

        d$ 删除至行尾

        d0 删除至行首

        dw

        de

        db

        3dw

   

粘贴命令

    p 缓存区的如果为整行,则粘贴当前光标所在的下方,否则,则粘贴至当前光标所在的后面

    P 缓存区的如果为整行,则粘贴当前光标所在的上方,否则,则粘贴至当前光标所在的前面

复制命令

    y 工作行为相似与d命令

        yy

        3yy 复制行

        y$

        y^

        ye

        yw

yb

改变命令

    c:修改 命令模式 => 输入模式

        c$,到行尾删除,转换为输入模式

        cc,删除当前行,转换为输入模式

 

替换命令

    r 替换光标所在处的字符

 

撤销此前的编辑

    u 撤销此前的操作

    ctrl+r 撤销此前的撤销

重复前一个编辑操作

    .

翻屏操作

    ctrl+f 向文件尾部翻一屏

    ctrl+b 向文件首部翻一屏

    ctrl+d 向文件尾部翻半屏

    ctrl+u 向文件首部翻半屏

 

可视化模式

    v,跳转光标可选,y复制可选块,p可粘贴可选块,d可以删除可选块

    V,跳转光标可选行,y复制可选行,p粘贴可选行,d可以删除可选行

 

输入模式(插入模式)

命令模式 => 输入模式

a 在当前光标所在行的第二个字符进入编辑模式

i 在光标所在的当前位置进入编辑模式

o 在光标所在行的下一行进入编辑模式

I 在当前光标所在行的行首输入

A 在当前光标所在行的行未输入

O 在光标所在行的上一行进入编辑模式

c

C

进入编辑模式后,在窗口的左下方会显示 -- INSERT --

image.png


末行模式:vim内建命令行接口

1、地址定界

:start_pos ,end_pos

n 具体第n行,5表示第5行

n1,n2 从n1表示行起始位置,到n2行结束位置

n1,+n2 从n1表示起始行,加上n2的行数, 1,+3第一行,并往下在数三行

. 表示当前行

$ 表示最后一行

.,$-1 当前行到倒数第二行

% 表示全文,等价于1,$

/pat1/,/pat2/ 从pat1模式匹配到的行开始,到pat2模式匹配到的行结束

n,/pat/ 从n行开始,到pat模式匹配到的行结束

/pat/,$  从pat模式匹配到的行开始,行尾

 

操作方式

    地址定界后面紧跟一个编辑命令

    d 删除

    y 复制

    w /路径/文件名  将指定范围的行保存到指定文件

    r /路径/文件名  将指定位置处插入指定文件的内容

2、查找

    /PATTERN 从当前光标所在处向文件尾部查找

    ? PATTERN 从当前光标所在处向文件首部部查找

        n,与命令同方向,/PATTERN 向文件尾部查找匹配到的内容

3、替换

    s 在末行模式下完成查找替换操作

        s/要查找的内容/替换为的内容/修饰符

要查找的内容可以使用模式,替换为的内容不能使用模式,可以使用\1,\2,……后项引用,可以使用 “&”引用前面查找时查找到的所有内容

   

        修饰符

            i忽略大小写

            g全集替换,默认每一行只替换第一次出现的

       

        查找替换间的分割符

            s@@@

            s###

            s///

image.png

1、:%s/^[[:space:]]\+///或 :%s/^[[:space:]]\+///g

2、:%s/^[[:space:]]/#&/  

 

关闭文件

    :q 退出

    :wq或:x 保存退出

    :w /path/to/file 保存文件到

命令模式下ZZ也可以退出

 

 

模式转换

    命令模式 => 输入模式

        i a 0 I A O

    输入模式 => 命令模式

        esc

    命令模式 => 末行模式

        :

    末行模式 => 命令模式

        esc:会间隔一段时间,回到命令模式

连续两次esc:快速回到命令模式

进阶用法

多文件模式

vim同时编辑接多个文件

vim file1 file2 file3

默认打开第一个文件

:next    切换到下一个文件

:prev    切换到上一个文件

:last    切换到最后一个文件

:first    切换到第一个文件

:wall        保存所有文件

:qall    全部退出

 

vim可以跨文件复制粘贴

窗口分割模式

单文件分割,vim编辑一个文件分屏显示

Ctrl+w 松开,按s键 水平拆分窗口

Ctrl+w 松开,按v键 垂直拆分窗口

 

在窗口之间切换光标

Ctrl+w 松开, 向上箭头

Ctrl+w 松开, 向下箭头 

Ctrl+w 松开, 向左箭头

Ctrl+w 松开, 向右箭头

:q退出一个窗口

:wall 保存所有窗口

:qall 退出所有窗口

 

vim分屏显示多个文件

vim -o file1 file2 file3 ...(水平拆分显示)

vim -O(大写) file1 file2 file3 ... (垂直拆分显示)

image.png

定制vim的工作特性:

1、配置文件

    全局:/etc/vimrc

    个人:~/.vimrc

    vim配置文件(~/.vimrc)默认是不存在的

编辑配置文件vim /etc/vimrc

 image.png

2、末行模式,设置vim的特性,对当前vim进程有效

:set   nu

显示行号

:set   noun

取消显示行号

:set   ai

自动缩进

:set   noai

取消自动缩进

:set   hlsearch

查找的关键字高亮

:set   nohlsearch

取消查找的关键字高亮

:syntax   on

语法高亮

:syntax   off

取消语法高亮

:set   showmatch

简写为set sm 括号匹配

:set   nosm

取消括号匹配

 

扩展:

获取帮助 :help [subject] 如 :help help

如何设置table键自动缩进为4个字符