美文网首页
Vim使用方法

Vim使用方法

作者: sa_justin | 来源:发表于2017-06-07 10:45 被阅读0次

    一、Vim的历史

    1.下图是关于几款主流编辑器的学习曲线:(注:图片来自互联网)

    2.VIM - Vi IMproved

    3.上图中vi即是vim的前身

    VI:Visual Interface

    4.VIM和VI是文本编辑器

    何为文本文件?

    文本文件一般指只有字符原生编码构成的二进制计算机文件,与富文本相比,其不包含字样样式的控制元素,能够被最简单的文本编辑器直接读取

    文本文件常见的格式?

    ASCII、MIME、.txt、…

    那么,何为文本编辑器?

    文本编辑器是计算机软件中的一种。主要用于用来编写和查看文本文件。

    文本编辑器的种类:

    行编辑器:sed

    全屏编辑器:nano、vi、vim

    二、Vim编辑器的基本操作

    1. 基本操作

    VIM:模式化的编辑器

    基本模式

    编辑模式(命令模式)

    输入模式(插入模式)

    末行模式(vim内置的命令行接口)

    Note:打开的时候默认的模式是编辑模式

    打开文件

    # vim [OPTION]... FILE...

    +#:打开文件后,直接让光标处于第#行的行首

    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

    模式转换

    模式转换:

    编辑模式 - - > 输入模式

    i:insert,在光标所在处前面插入;

    a:append,在光标所在处的后面插入;

    o:open,在当前光标所在行的下一行打开新行,并转换为输入模式;

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

    A:在当前光标所在行的行尾输入;

    O:在光标所在行的上一行打开一个新行,并转换为输入模式;

    输入模式 - - > 编辑模式

    ESC

    编辑模式 - - > 末行模式

    末行模式 - - > 编辑模式

    ESC

    关闭文件

    :q:退出

    :!:强制退出,丢弃做出的修改;

    :wq:保存退出;

    :x:保存退出;

    :w /PATH/TO/SOMEWHERE:当前编辑的文本保存到别的文件;

    ZZ:保存退出;

    图示说明如下:(转载请注明出处)

    2. 光标跳转:

    字符间跳转:

    h,j,k,l

    h:

    l:

    k:

    j:

    #COMMAND:跳转由#指定的个数的字符;

    单词间跳转:

    w:跳转至下一个单词或后一个单词的词首

    e:跳转至当前或下一个单词的词尾

    b:跳转至当前或下一个单词的词首

    #COMMAND:由#指定一次跳转的单词数;

    行首行尾跳转:

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

    0:跳转至绝对的行首

    $:跳转至绝对行尾

    行间移动:

    #G:跳转至由#指定行;

    G:跳转至最后一行;

    1G,gg:跳转至第一行;

    句间移动:

    ):跳转至下一个句子;

    (:跳转至上一个句子;

    段落间移动:

    }:跳转至下一段

    {:跳转至上一段

    3. vim的编辑命令:

    字符编辑:

    x:删除光标处的单个字符;

    #x:删除光标处起始的#个字符;

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

    替换命令:

    r,replace

    r:替换光标所在处的字符;(单字符替换)

    删除命令:

    d:删除命令,可结合光标跳转字符,实现范围删除;

    d$:删除至绝对行尾

    d^:删除至行首的第一个非空白字符

    d0:删除至绝对行首

    dd:删除光标所在行;

    #dd:向下删除#行;

    粘贴命令:

    (p,put,paste)

    p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的方;否则,则粘贴至当前光标所在处的面;

    P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的方;否则,则粘贴至当前光标所在处的面;

    复制命令:

    y,yank

    y:复制,工作行行为相似于d命令;

    y$:复制至绝对行尾

    y0:复制至绝对行首

    y^:复制至行首的第一个非空白字符

    yy:复制整行

    #yy:复制多行;

    改变命令:

    c,change

    c:修改

    编辑模式 - -> 输入模式

    cc:删除并输入新内容

    #cc:一次删除#行

    三、其它编辑操作

    1.可视化模式

    v:按字符选定

    V:按行选定

    Note:经常结合编辑命令;

    2. 撤销此前的编辑:

    u(undo):撤销此前的操作;

    #u:撤销指定次数的操作;

    撤销此前的撤销:

    Ctrl+r

    重复前一个编辑操作:

    .

    四、翻屏操作

    Ctrl+f:向文件尾部翻一屏;

    Ctrl+b:向文件首部翻一屏;

    Ctrl+d:向文件尾部翻半屏;

    Ctrl+u:向文件首部翻半屏;

    vim自带的练习教程

    vimtutor

    五、vim的末行模式

    内建的命令行接口

    特性

    (1). 地址定界

    :start_pos,end_pos

    #:具体的第#行,例如:2表示第2行;

    #,#:从左侧#表示起始,到右侧#表示结束;

    #,+#:从左侧#表示的行开始,加上右侧#表示的行数;

    .当前行;

    $:最后一行;

    %:全文;相当于(1,$)

    /pat1/,/pat2/:表示从第一次被pat1匹配到的行开始,一直到pat2匹配到的行结束

    使用方式

    后跟一个编辑命令:

    d:删除指定范围的内容

    y:复制指定范围的内容

    w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中;

    r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容;

    (2). 查找

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

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

    n:与命令同方向;

    N:与命令反方向;

    (3). 查找并替换

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

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

    要查找的内容:可使用模式;

    替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;好可以使用"&"引用前面查找时查找到的整个内容;

    修饰符:

    i:忽略大小写

    g:全局替换;默认情况下,没一行只替换第一次出现的内容;

    查找替换中的分隔符/可替换为其它字符,例如:

    s@@@

    s###

    六、vim的文件模式

    1. 多文件模式

    vim FILE1 FILE2 FILE3 …

    :next切换至下一个文本

    :prev切换至前一个文本

    :first切换至前一个文本

    :last切换至最后一个文本

    :wall保存所有

    :qall退出所有

    2. 窗口分隔模式

    vim -o|-O FILE1 FILE2 …

    -o:水平分割

    -O:垂直分割

    在窗口间切换:Ctrl+w,Arrow

    3. 单文件窗口分割:

    Ctrl+w,s:split,水平分割

    Ctrl+w,v:vertical,垂直分割

    4. 定制vim的工作特性:

    配置文件:(永久有效)

    全局:/etc/vimrc

    个人:~/.vimrc(默认不存在,需要自己创建)

    末行:(当前vim进程有效)

    (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

    5. 书籍推荐:《Vim-handbook-cn-72》

    6. 获取帮助

    在末行模式下:help SUBJECT

    相关文章

      网友评论

          本文标题:Vim使用方法

          本文链接:https://www.haomeiwen.com/subject/vxuofxtx.html