Vim命令


Vim 简介

vim是一个Unix文本编辑器,它以快速高效而闻名,是在终端中运行的小应用程序(当然也有图形界面),它最主要的特点是完全可以通过键盘控制,而不需要菜单栏或鼠标。

使用vim打开文件后,一般会用到三种模式:命令模式(command mode)、输入模式(insert mode)和底行命令模式(last line mode)。

刚启动vim时,默认进入命令模式。这时候,我们敲打键盘的字母会被识别为不同的命令。如方向键h、j、k、l;输入键i、a、o,切换到输入模式;冒号键:,切换到底行命令模式。

三种模式的切换关系如下:
VimMode

常用Vim命令及快捷操作

下面是日常用的比较多的一些命令

vi test.txt  打开或创建一个文件,默认是命令模式

切换到编辑模式:
    i  是在光标前面插入内容,
    a  在光标后面插入内容,
    o  在光标下一行插入内容,
    I  在行首插入内容,
    A  在行尾插入内容,
    O  在光标上一行插入内容

esc键        退回到命令模式
:            切换到末行模式
:wq          保存退出
:wq!         强制保存并退出
:q!          不保存退出
Shift + zz   相当于:wq
:set number  显示行号,如果想要每次都显示行号则执行 vim ~/.vimrc 创建文件并添加 :set number

命令模式:复制、剪切、删除、撤销
    yy    复制光标所在行
    4yy   复制光标所在行向下4行
    p     粘贴
    dd    剪切光标所在行
    3dd   剪切光标所在行向下3行
    d0    剪切光标到第一行的内容
    D     从当前光标开始到末尾剪切
    x     删除光标后面一个字母
    X     删除光标前面一个字母
    [N]dw 删除光标往后的N个单词,dw删除一个单词
    d$    删除光标所在行光标之后所有的内容
    u     撤销当前操作
    Ctrl  + r 反撤销

命令模式:光标定位
    j   光标向下      k   光标向上   h   光标向左    l   光标向右
    M   光标定位到当前页中间
    H   光标定位到当前页第一行
    L   光标定位到当前页最后一行
    :n  编辑模式下,将光标移动到指定行,如:20移动到第20行
    20G 快速定位到第20行
    G   快速到代码最后一行
    gg  快速回到代码第一行
    w/W 跳至下一个单词词首(前面可加数字,光标移动多个单词,如4w)
    b/B 跳至上一个单词词首(前面可加数字,光标移动多个单词,如20B)
    e/E 跳至下一个单词词尾(前面可加数字,光标移动多个单词)
    0/^ 光标移动到当前行行首
    $   光标移动到当前行行尾
    fa  光标移动到当前行下一个a字母处
    FA  光标移动到当前行下一个A字母处
    %   当光标在括号 ( [ { } ] ) 处时,按%会定位到与之成对的括号处
    Ctrl - ] 打开光标所在的文件
    Ctrl 0   返回上一次窗口
    Ctrl f 向下翻一页
    Ctrl b 向上翻一页

v(V) + h,j,k,l  选中多行
>>  向右移动
<<  向左移动
.   重复执行命令
:%s/str1/str2/g   将所有的str1替换为str2
:%s/str1/str2/   将所有行的第一个str1替换为str2

/  搜索

Vim 键位图

Vim命令非常多,如果不是经常使用很容易忘记, 下面是一位大佬画的vim命令对应键盘的键位图,可以对照命令加上实际上手操作来记忆

Vim Cheatsheet

另外vim还提供了一个常用命令的学习教程,在Linux环境下输入:vimtutor即可。


  目录