美文网首页
21 Vim 基本操作(一)

21 Vim 基本操作(一)

作者: StarShift | 来源:发表于2016-09-25 10:22 被阅读89次

    1. 简介

    Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。进入Vim编辑程序,可以在终端输入下面的命令:

    $vim [filename]
    

    其中filename是要编辑器的文件的路径名。如果文件不存在,它将为你建立一个新文件。Vim编辑程序有三种操作模式,分别称为 编辑模式插入模式命令模式,当运行Vim时,首先进入编辑模式。

    2. 编辑模式

    Vim编辑方式的主要用途是在被编辑的文件中移动光标的位置。一旦光标移到到所要的位置,就可以进行剪切和粘贴正文块,删除正文和插入新的正文。当完成所有的编辑工作后,需要保存编辑器结果,退出编辑程序回到终端,可以发出ZZ命令,连续按两次大写的Z键。

    2.1 跳转

    如果键盘上有上、下、左、右箭头的导航键,就由这些键来完成光标的移动。另外,可以用下面的键完成同样的 按字符移动 功能:

    k   上移;
    j   下移;
    h   左移;
    l   右移。
    

    上面这4个键将光标位置每次移动一行或一个 字符 。Vim还提供稍大范围移动光标的命令:

    ctrl+f    在文件中前移一页(相当于 page down);
    ctrl+b   在文件中后移一页(相当于 page up);
    

    更大范围的移动:

    *       当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
    #       当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
    (/)     移动到 前/后 句 的开始;
    {/}     跳转到 当前/下一个 段落 的开始。
    g_      到本行最后一个不是 blank 字符的位置。
    fa      到下一个为 a 的字符处,你也可以fs到下一个为s的字符。
    t,      到逗号前的第一个字符。逗号可以变成其它字符。
    3fa     在当前行查找第三个出现的 a。
    F/T     和 f 和 t 一样,只不过是相反方向;
    gg      将光标定位到文件第一行起始位置;
    G       将光标定位到文件最后一行起始位置;
    NG或Ngg 将光标定位到第 N 行的起始位置。
    

    在屏幕中找到需要的 一页 时,可以用下面的命令快速移动光标:

    H 将光标移到屏幕上的起始行(或最上行);
    M 将光标移到屏幕中间;
    L 将光标移到屏幕最后一行。
    

    同样需要注意字母的大小写。HL命令还可以加数字。如 :

    2H    表示将光标移到屏幕的第2行,
    3L    表示将光标移到屏幕的倒数第3行。
    

    当将光标移到所要的行时,行内移动 光标可以用下面的命令来实现:

    w   右移光标到下一个字的开头;
    e   右移光标到一个字的末尾;
    b   左移光标到前一个字的开头;
    0   数字0,左移光标到本行的开始;
    $   右移光标,到本行的末尾;
    ^   移动光标,到本行的第一个非空字符。
    

    2.2 搜索匹配

    和许多先进的编辑器一样,Vim 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以用Vim直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符/, 后面跟以要搜索的字符串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的开头;键入n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ?取代 /,可以实现反向搜索(朝文件开头方向)。例如:

    /str1       正向搜索字符串 str1;
    n           继续搜索,找出 str1 字符串下次出现的位置;
    N           继续搜索,找出 str1 字符串上一次出现的位置;
    ?str2       反向搜索字符串 str2 。
    

    无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。Vim中执行搜索匹配最强大的地方是结合 正则表达式 来搜索,后续将会介绍。

    2.3 替换和删除

    Vim常规的删除命令是 dx(前者删除 行,后者删除 字符),结合Vim的其他特性可以实现基础的删除功能。将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符或一行、多行。例如:

    rc       用 c 替换光标所指向的当前字符;
    nrc      用 c 替换光标所指向的前 n 个字符;
    5rA      用 A 替换光标所指向的前 5 个字符;
    x        删除光标所指向的当前字符;
    nx       删除光标所指向的前 n 个字符;
    3x       删除光标所指向的前 3 个字符;
    dw       删除光标右侧的字;
    ndw      删除光标右侧的 n 个字;
    3dw      删除光标右侧的 3 个字;
    db       删除光标左侧的字;
    ndb      删除光标左侧的 n 个字;
    5db      删除光标左侧的 5 个字;
    dd       删除光标所在行,并去除空隙;
    ndd      删除(剪切) n 行内容,并去除空隙;
    3dd      删除(剪切) 3 行内容,并去除空隙;
    

    其他常用的删除命令有:

    d$      从当前光标起删除字符直到行的结束;
    d0      从当前光标起删除字符直到行的开始;
    J       删除本行的回车符(CR),并和下一行合并。
    

    Vim常规的替换命令有 c和 s,结合Vim的其他特性可以实现基础的替换功能,不过替换命令执行以后,通常会由 编辑模式 进入 插入模式

    s       用输入的正文替换光标所指向的字符;
    S       删除当前行,并进入编辑模式;
    ns      用输入的正文替换光标右侧 n 个字符;
    nS      删除当前行在内的 n 行,并进入编辑模式;
    cw      用输入的正文替换光标右侧的字;
    cW      用输入的正文替换从光标到行尾的所有字符(同 c$ )
    ncw     用输入的正文替换光标右侧的 n 个字;
    cb      用输入的正文替换光标左侧的字;
    ncb     用输入的正文替换光标左侧的 n 个字;
    cd      用输入的正文替换光标的所在行;
    ncd     用输入的正文替换光标下面的 n 行;
    c$      用输入的正文替换从光标开始到本行末尾的所有字符;
    c0      用输入的正文替换从本行开头到光标的所有字符。
    

    2.4 复制粘贴

    从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可将其粘贴到正文中的指定位置。完成这一操作的命令是:

    p       小写字母 p,将缓冲区的内容粘贴到光标的后面;
    P       大写字母 P,将缓冲区的内容粘贴到光标的前面。
    

    如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,执行上述粘贴命令将会粘贴在当前光标所在行的上一行或下一行。注意上述两个命令中字母的大小写。
    Vim 编辑器经常以一对大、小写字母(如 p 和 P)来提供一对相似的功能。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。
    有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是剪切)到内存缓冲区。完成这一操作的命令是:

    yy       复制当前行到内存缓冲区;
    nyy      复制 n 行内容到内存缓冲区;
    5yy      复制 5 行内容到内存缓冲区;
    “+y      复制 1 行到操作系统的粘贴板;
    “+nyy    复制 n 行到操作系统的粘贴板。
    

    2.5 撤销和重复

    在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新的光标位置重复前面执行过的编辑命令,可用重复命令。

    u       撤消前一条命令的结果;
    .       重复最后一条修改正文的命令。
    

    3. 插入模式

    3.1 进入插入模式

    在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:

    i      在光标左侧插入正文
    a      在光标右侧插入正文
    o      在光标所在行的下一行增添新行
    O      在光标所在行的上一行增添新行
    I      在光标所在行的开头插入
    A      在光标所在行的末尾插入
    

    3.2 退出插入模式

    退出插入模式的方法是,按 ESC
    键或组合键 Ctrl+[
    ,退出插入模式之后,将会进入编辑模式 。

    相关文章

      网友评论

          本文标题:21 Vim 基本操作(一)

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