• 一小时掌握vim基础用法


    一、编辑区模式

    vim编辑区的常用模式有3种:

    • 标准模式(默认):移动光标、其他各种文本处理任务;
    • 插入模式(按 i 进入):输入文字;
    • 可视化模式(按 v 进入):选择文本。

    任何时候,只要按下 ESC 键,就会回到标准模式。由于在该模式下可以任意移动光标,并且能够方便地转换到其他各种模式,所以用好vim的一条重要原则是:尽量多使用标准模式。能在标准模式下做的事,就不要在其他模式下做。

    二、移动光标

    执行

    vim [文件名]
    
    • 1

    后进入的就是标准模式。在该模式下,我们可以使用 hjkl 这四个按键来移动光标。其中 hl 控制的是左、右,jk 控制的是下、上。当然你也可以通过方向键来移动光标。

    仅仅有这些是不够的,我们还需要更多的快捷指令:

    命令功能
    gg移动光标至第一行的第一个字符处
    G移动光标至最后一行的第一个字符处
    [n]G跳转到第 [n] 行。例如跳转到第三行就是 3G
    [n]%跳转到文档的百分之 [n] 部分
    b / w向前 / 后移动到下一个单词的首字符
    B / W向前 / 后移动到下一个WORD的首字符
    ge / e向前 / 后移动到下一个单词的结尾字符
    gE / E向前 / 后移动到下一个WORD的结尾字符
    0 / $将光标移动至行首 / 行尾
    ( / )向前 / 后移动一个句子
    { / }向前 / 后移动一个段落

    📝 需要注意的是,单词之间的分隔符是空格或标点符号(例如连字符,句号,逗号,引号等),而WORD(广义单词)的分隔符只有空格。

    三、文本对象

    一个文本对象由两部分组成:修饰符和对象名称。

    • 修饰符:a 表示该对象及其后面的空格字符;i 表示对象本身。
    • 对象名称:w 为单词,s 为句子,p 为段落。

    例如要查看一个单词对象是什么样子的,可以先按 v 进入可视化模式,然后按下 iw。下面比较 viwvaw 的区别:

    viw

    在这里插入图片描述

    vaw

    在这里插入图片描述

    常用的文本对象命令列在下表中:

    在这里插入图片描述

    对于嵌套括号,我们只需要在文本对象前加入相应的量词就可以实现不同的选中范围。

    光标置于 c,输入 v2i(

    在这里插入图片描述
    光标置于 c,输入 v2a(

    在这里插入图片描述

    量词不仅可以放到文本对象前面,也可以放到光标移动命令前面,例如 3j 就是向下移动3行。

    四、修改文本

    命令功能
    u撤销上一次编辑
    ctrl + R(mac上是 control + R重做,即撤销上一次撤销
    V选中当前行
    d剪切文本
    y复制文本
    p在光标后粘贴文本
    P在光标前粘贴文本
    dd剪切光标所在行
    yy复制光标所在行
    D剪切光标到行尾的文本
    x剪切光标所在位置的字符

    注意 dy 无法单独使用,需要在后面跟一个移动或者文本对象。

    📝 交换相邻两个字符是 xp,交换相邻两行是 ddp

    五、插入模式

    在这里插入图片描述

    从标准模式进入插入模式后,不论插入或者用退格键、删除键修改了多少
    文本,都算一个编辑动作。所以我们应尽量避免在插入模式下使用方向键和删除键、退格键编辑文本,多使用标准模式,不仅编辑效率高,而且每个编辑动作改动都不大,方便进行精细的撤销 / 重做调整。

    六、命令模式

    在标准模式下输入英文冒号 : 即可切换到命令模式。与编辑区模式不同,按下冒号键后窗口最底部会显示冒号,表示目前已进入命令模式了,等待继续输入后续命令。这时你可以继续输入命令,并按回车键执行,或者用 ESC 键退回标准模式。

    最常用的命令为 :wq,即保存并退出。

    6.1 文本搜索

    输入 / 可进入搜索模式,例如要搜索 print,则可输入 /print 然后按下回车键,使用 nN 来查看下一个/上一个匹配项。

    6.2 多窗口编辑

    假设我们在编辑 a.txt 的时候需要参考 b.txt 的内容。

    首先使用vim打开 a.txt,然后输入 :sp:vsp 进行水平或垂直切分窗口。再输入 :e b.txt 即可在当前窗口打开 b.txt

    窗口切换:

    • 跳转到左侧窗口:ctrl + w + h
    • 跳转到右侧窗口:ctrl + w + l
    • 跳转到下侧窗口:ctrl + w + j
    • 跳转到上侧窗口:ctrl + w + k

    编辑完后,可输入 :wqa 保存并退出所有窗口(a 即all的意思)。

    七、vim的配置

    vim的配置存储在 ~/.vimrc。每次vim启动时,如果发现存在这个文件,就会执行其中的内容。任何能在vim里手动执行的命令都可以写在 .vimrc 文件里启动时自动执行,一般用来定义快捷键、函数、命令,以及设置运行时属性等。

    vim基础配置:

    set et
    set sw=2
    set ts=2
    set nowrap
    set number
    set clipboard+=unnamedplus
    set nobackup
    set noswapfile
    set splitbelow
    set splitright
    set incsearch
    let mapleader=","
    
    nnoremap ; :
    nnoremap : ;
    vnoremap ; :
    vnoremap : ;
    nnoremap <leader>e :e $MYVIMRC<CR>
    nnoremap <leader>s :so $MYVIMRC<CR>
    nnoremap <C-J> <C-W><C-J>
    nnoremap <C-K> <C-W><C-K>
    nnoremap <C-L> <C-W><C-L>
    nnoremap <C-H> <C-W><C-H>
    nnoremap <F2> :set wrap!<CR>
    
    filetype indent plugin on
    syntax on
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    附录

    vim键位图:

    在这里插入图片描述

  • 相关阅读:
    Typora自定义主题
    【重磅+测评】Jetbrain发布Rust IDE,免费使用一年
    SpringCLoud——Feign的远程调用
    小红书账号怎么做起来的呢?干货!快收藏起来!
    【已解决】‘python‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
    拓展企业客户群:如何使用企业联系方式查询API帮助在社交媒体上寻找潜在客户
    MybatisPlus拓展——实现多数据源操作
    卷积运算与互相关运算
    【毛毛讲书】【混合信号】如何更好地设计激励措施?
    Linux开发讲课14--- CPU100%该如何处理
  • 原文地址:https://blog.csdn.net/raelum/article/details/126192525