美文网首页程序员
如何高效使用vim

如何高效使用vim

作者: 码农充电站pro | 来源:发表于2020-04-12 18:49 被阅读0次

    Vim 是一款文本编辑器,被称为编辑器之神,非常适合在shell 中编辑代码,熟练的使用Vim,可以让你高效的编写代码。

    Vim 是Vi 的增强版,所有的类Unix 系统,都自带这两个工具,这两个工具中使用较多的也是Vim

    Vim 中有很多命令,本文并不打算介绍所有的命令,只介绍常用实用的命令,熟练使用这些命令,就可以快速的编写代码。

    1,Vim 的三种模式

    vim 中有三种模式,分别是普通模式编辑模式可视模式

    其实,还有一种模式是命令模式,这里我将命令模式 归入到了普通模式中,并没有单独将命令模式拿出来。其实命令模式 就是在普通模式下输入一个冒号:加一个命令

    其中可视模式 又分为行可视列可视,如下:

    vim 模式
       ├── 普通模式
       ├── 编辑模式:可向文件中输入内容
       └── 可视模式
              ├── 行可视:按行选中某块区域
              └── 列可视:按列选中某块区域  
    

    它们之间的转换如下所示:

    image
    • vim + 文件名 打开文件进入普通模式
    • 普通模式 输入ioa 进入编辑模式
    • 普通模式 输入Ctrl + v 进入 列可视
    • 普通模式 输入Shift +v 进入 行可视
    • 其它模式输入Esc 返回普通模式

    下面介绍每个模式支持的常用命令

    2,普通模式

    在普通模式下,可以使用下面这些命令,普通模式的命令最多。

    2.1,如何进入编辑模式

    使用以下命令进入编辑模式

    命令 含义
    i 在当前光标前位置进入编辑模式
    a 在当前光标后位置进入编辑模式
    o 在当前光标下一行进入编辑模式

    2.2,如何移动光标

    使用以下命令移动光标:

    命令 含义
    k方向键↑ 向上移动,建议使用k
    j方向键↓ 向下移动,建议使用j
    h方向键← 向左移动,建议使用h
    l方向键→ 向右移动,建议使用l
    ^ 移动到当前行第一个可见字符
    0或者Home键 移动到当前行开头
    $或者End键 移动到当前行最后
    % 在两个匹配的{}[]()<>之间移动
    w 向后移动一个单词
    b 向前移动一个单词
    gg 移动到当前文件的第一行
    G 移动到当前文件的最后一行
    M 移动到当前文件的中间一行
    Ctrl + o 移动到上一次编辑的地方
    :+数字N 输入一个:,再输入一个数字,按回车,快速跳到某一行

    2.3,如何删除/复制/粘贴

    使用以下命令删除/复制/粘贴

    命令 含义
    dd 删除光标所在的行,并且内容在剪切板
    yy 复制光标所在的行,并且内容在剪切板
    dw 删除光标所在的单词,并且内容在剪切板
    x 删除光标所在的一个字符,并且内容在剪切板
    D 删除光标到行末尾所有的内容,并且内容在剪切板
    p 粘贴剪切板的内容到光标处

    2.4,如何进行搜索

    使用以下命令在当前文件中搜索

    命令 含义
    * 光标停留在某个字符串时,*可以在当前文件中搜索这个字符串
    /+字符串+回车 在当前页面搜索这个字符串
    n 锁定到下一个匹配的字符串
    N 锁定到上一个匹配的字符串
    :set hlsearch 让所有匹配的字符串高亮
    :set noh 取消字符串高亮

    2.5,如何进行分屏

    vim 分屏

    命令 含义
    :vsp + 文件名 横向分屏
    :sp + 文件名 竖向分屏
    Ctrl + ww 锁定到下一个屏
    退出命令 使用退出命令,退出当前屏

    2.6,如何退出文件

    退出命令如下:

    命令 含义
    :wq 保存退出当前文件
    :w 保存当前文件
    :q 退出当前文件
    :qa 退出打开的所有文件
    :q! 强制退出(不保存)

    2.7,如何进入可视模式

    进入可视模式

    命令 含义
    Shift + v 进入行可视模式
    Ctrl + v 进入列可视模式

    2.8,其它

    命令 含义
    u 撤销上一次操作
    Ctrl + r 反撤销操作
    ~ 英文字符大小写转换
    :%s/x/y/g 将当前文件中所有的x换成y
    数字 + == 用于格式化代码,比如先输入一个999,再输入==,从当前行开始,以下999 行代码都会格式化
    :set nu 显示行号
    :set nonu 关闭行号

    3,编辑模式

    在编辑模式下可以使用下面命令。

    命令 含义
    Ctrl + n 搜素下一个变量名,函数自动补全
    Ctrl + p 搜索上一个变量名,函数自动补全
    Shift + Insert 在当前光标插入系统剪切板的内容

    4,行可视模式

    行可视模式下可以使用下面命令。

    命令 含义
    k方向键↑ 向上选中多行
    j方向键↓ 向下选中多行
    d 删除选中的区域内容,并且内容在剪切板
    y 复制选中的区域内容,并且内容在剪切板
    p 粘贴剪切板中的内容
    > 将选中的区域向右缩进
    < 将选中的区域向左缩进

    5,列可视模式

    列可视模式下可以使用下面命令。

    命令 含义
    k方向键↑ 向上选中多行
    j方向键↓ 向下选中多行
    h方向键← 向左选中多列
    l方向键→ 向右选中多列
    d 删除选中的区域内容,并且内容在剪切板
    y 复制选中的区域内容,并且内容在剪切板
    p 粘贴剪切板中的内容
    > 将选中的区域向右缩进
    < 列可视模式下不支持

    以上讲到的命令需要多使用才能熟练,所谓孰能生巧。

    如果你想配置Vim 插件 的话,建议不需要配置多么花哨复杂的插件,简单实用就好。

    注意,在使用Vim 的时候,鼠标基本是没有什么用的,所以这时可以忘记鼠标的存在,只有键盘

    另外,vimdiff 命令可以对比多个文件的不同,如下所示,打开两个文件(也可打开多个文件):

    vimdiff 1.c 2.c
    
    image

    这里还有一个Vim 小游戏 ------《Vim 大冒险》,很有创意的一个小游戏,可以锻炼使用Vim,感兴趣的可以玩一下。

    6,Vim 命令速查表

    最后附上两张Vim 命令速查表,自行选择,各取所需。

    图一:

    [图片上传失败...(image-3bd0f5-1586688546775)]

    图二: PDF版在这里

    image

    (完。)

    相关文章

      网友评论

        本文标题:如何高效使用vim

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