Vim 使用指南

作者: 饥人谷_Mily | 来源:发表于2017-02-09 09:47 被阅读0次

    Vi 编辑器由 Bill Joy 在 1976 年编码实现。Vim ( Vi Improved ) 编辑器由 Bram Moolenaar 在 1991 年开发并发布,是 Vi 编辑器的改进版。Vim 编辑器支持 Linux / Mac OS X / Windows 系统,是一款功能强大、灵活高效的文本文件编辑工具。

    1 启动 Vim

    Windows 系统可安装Git,打开 Git Bash 并运行如下命令来启动 Vim。
    Mac OS X 系统可打开终端并运行如下命令来启动 Vim。

    vim              启动
    vim [filename]   启动并加载文件
                     filename 是要编辑的文件名,如文件不存在,则创建一个新文件
    

    2 编辑模式

    Vim 编辑器有四种编辑模式,分别是:

    • 普通模式 ( normal-mode )
    • 插入模式 ( insert-mode )
    • 命令模式 ( command-mode )
    • 可视模式 ( visual-mode )

    2.1 普通模式 ( normal-mode )

    运行 Vim 后,即进入普通模式,任意输入一个字符后即进入插入模式。在其他模式下时,可通过 Esc 键返回普通模式。

    2.1.1 移动光标

    k                  上移
    j                  下移
    h                  左移
    l                  右移
    
    ctrl+f             在文件中前移一页(相当于 page down)
    ctrl+b             在文件中后移一页(相当于 page up)
    
    0                  移动到当前行的段头
    $                  移动到当前行的段尾 
    gg                 移动到第一行的段首  
    G                  移动到最后一行的段首
    ta                 移动到本段第一个a前一个字符处
    Ta                 移动到本段第一个a后一个字符处
    fa                 移动到到下一个为a的字符处
    3fa                在当前行查找第三个出现的 a
    Fa                 移动到下一个为a的字符处
    nG或ngg            移动到到第n段的段首
    w                  移动到下一个单词开头  
    b                  移动到上一个单词开头  
    e                  移动到下一个单词的结尾  
    ^                  移动到第一个非空字符的位置  
    g_                 移到本行最后一个非空字符的位置
    %                  移动到匹配括号移动,如:%(,%[, %{
    *                  当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处
    #                  当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处
    (/)                移动到 前/后句 的开始
    {/}                跳转到 当前/下一个 段落的开始
    

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

    H   将光标移到屏幕上的起始行
    nH  将光标移到屏幕上的第n行
    M   将光标移到屏幕中间
    L   将光标移到屏幕最后一行
    nL  将光标移到屏幕倒数第n行
    

    2.1.2 搜索匹配

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

    Vim 中执行搜索匹配可结合 正则表达式 来搜索。

    2.1.3 替换和删除

    Vim常规的删除命令是 dx (前者删除 行 ,后者删除 字符 ),例如:

    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常规的替换命令有 cs ,替换命令执行后,通常会由 编辑模式 进入 插入模式

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

    2.1.4 复制粘贴

    yy              复制当前行到内存缓冲区
    nyy             复制 n 行内容到内存缓冲区
    5yy             复制 5 行内容到内存缓冲区
    “+y             复制 1 行到操作系统的粘贴板
    “+nyy           复制 n 行到操作系统的粘贴板
    
    p               小写字母 p,将缓冲区的内容粘贴到光标的后面
    P               大写字母 P,将缓冲区的内容粘贴到光标的前面
    

    2.1.5 撤销和重复

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

    2.2 插入模式 ( insert-mode )

    在正常模式下执行下列命令即进入插入模式。

    a   从光标后插入
    A   从当前光标所在行末尾插入
    i   从光标所在处插入
    I   从当前光标所在行行首插入
    o   在光标所在行的下一行增添新行
    O   在光标所在行的上一行增添新行
    

    2.3 命令模式 ( command-mode )

    在普通模式下输入:,即进入命令模式,又称为末行模式。用户输入的内容均显示在屏幕的最后一行,按回车键来执行命令。

    2.3.1 打开文件

    :e path_to_file/filename   打开文件
    

    2.3.2 保存、退出

    :w                   保存文件
    :w file_temp         将文件另存为 file_temp
    :wq                  保存并退出
    ZZ                   保存并退出 (在普通模式下)
    
    : q                  在未作修改的情况下退出
    :q!                  不保存强制退出
    ZQ                   不保存强制退出(在普通模式下)
    
    说明:w 是 write 的缩写, q 是 quit 的缩写
    

    2.3.3 恢复文件

    当 Vim 意外退出时,可使用恢复命令 :recover 来恢复文件,也可以在启动Vim时用 -r 选项。

    2.3.4 选项设置

    :set option       设置选项 option
    
    autoindent        设置该选项,则正文自动缩进
    ignorecase        设置该选项,则忽略规则表达式中大小写字母的区别
    number            设置该选项,则显示正文行号
    ruler             设置该选项,则在屏幕底部显示光标所在行、列的位置
    tabstop           设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8
    mk                将选项保存在当前目录的 .exrc 文件中
    

    2.4 可视模式 ( visual-mode )

    Vim 的可视模式用于选中一块文本区域并在其上操作。3种不同的可视模式:

    • 字符可视化模式
    • 行可视化模式
    • 块可视化模式
    v        进入字符可视化模式
    V        进入行可视化模式
    Ctrl+v  进入块可视化模式
    gv        重选上次的高亮选区
    o         切换高亮选区活动端
    Esc       进入普通模式
    I 或 A    进入插入模式
    

    在可视模式下,很多普通模式的命令也完成相同的功能,例如 h、j、k、l、f{char}、;、,、n/N。每次移动光标,都会改变高亮选区的边界。

    相关文章

      网友评论

        本文标题:Vim 使用指南

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