IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【Vim】Vim 的常用命令 -> 正文阅读

[开发工具]【Vim】Vim 的常用命令

Vim 的常用命令

基于 Vscode 中的 Vim,可以查看之 Vscode 配置 vim 能有助于理解

一、Vim 的模式

  • normal 模式: 大部分命令执行
  • insert 模式: 实现对文件内容的执行
  • visual 模式: 实现多行的编辑
  • vim 命令模式: 实现文本内容之外的操作

模式之间的转换:

  • normal --> insert

    i : 在光标前插入 insert

    I : 在光标后插入 Insert in header

    o : 在下一行插入 one line insert

    O : 在上一行插入 One Line Insert before

    a : 在光标后插入 after

    A : 在行尾插入 after the end of a line

    这里 c(change) 类命令也会将 normal 模式转换为 insert 模式

  • insert --> normal

    esc 或者用户定义映射到 esc 的组合或者单独的按键: 大部分人会使用 Caps Lock 或者 j + j 绑定为 esc

  • normal --> visual

    v/V

  • visual --> normal

    esc 或 再按一次 v/V

  • normal --> 命令模式
    :

  • 命令模式 --> normal
    清除命令 或 Esc 键

二、Vim 的常用命令

1. 光标移动

  • 上下左右: k j h l
  • 向上翻页: ctrl + b(back)
  • 向下翻页: ctrl + f(forward)
  • 跳到单词开头: w (往后查找) b(before 往前)
  • 跳到单词结尾: e (往后查找) ge(往前查找)
  • 跳到行首: 0 或者 ^(跳到从行首开始的第一非空字符)
  • 跳到行尾: $
  • 跳到第一行: gg
  • 跳到最后一行: G
  • 往前跳十九行: ctrl u
  • 往后跳十九行: ctrl d
  • 跳到指定行: linenumber gg (行号 + gg: 40gg)
  • 从当前行往下跳 num 行: num j (10 j)
  • 从当前行往前跳 num 行: num k (10 k)
  • 跳到下个 {char} 所在位置: f {char}
  • 跳到上个 {char} 所在位置: F {char}
  • 跳到下个 {char} 的前一个字符位置: t {char}
  • 跳到上个 {char} 的后一个字符位置: T {char}
  • 重复上次的字符查找操作: ;
  • 反向查找上次的查找指令: ,

2. 常用快捷

  • 清除一行,更改内容: cc
  • 清除多行,更改内容: c num c (c3c:清除三行)
  • 删除一行: dd(delete)
  • 删除一行: d num d
  • 复制: yy(yanked)
  • 修改: cc(change)
  • 粘贴: p
  • 撤销: u / shift + U
  • 恢复上一步撤销: ctrl + r
  • 更改单个字符内容: 光标选中字符, r {char} char 为更改后的字符
  • 搜索:/keyword 键入 enter 后,按 n 跳转到下一个 keyword 开头,N 跳到下一个 keyword 开头

3. 动作(motion)

  • i:inner 选中成对符号内内容

    • i" iw i(/ib i{/iB i’ i` i< i[ it is ip ie
  • a:around 选中成对符号内容

    • a" aw a(/ab a{/aB a’ a` a< a[ at as ap

    p:paragraph s:sentence t:tag b:bracket B:Bracket w:word e:entire

4. 操作符号

  • d(delete):删除
  • c(change):修改
  • y(yank):复制
  • v(visual):复制

5. 切换大小写

  • U:将光标下的字符改成大写
  • u:将光标下的字符改成小写
  • ~:将光标下的字母改变大小写
  • r:修改光标的下字符,r {char} 修改为 char 字符
  • 3~:将光标开始位置的3个字母改变其大小写
  • g~:改变当前的字母的大小写(大改小,小改大)
  • gUU:将当前行的字母改成大写
  • guu:将当前行的字母改成小写
  • gUaw(gUiw):将光标下的单词改成大写
  • guaw(guiw):将光标下的单词改成小写

许多操作都是结合了motion 进行选中

三、Tips

1. 代码中的操作(Tips)

  • gd: goto define (跳转到函数定义)
  • ^O:返回上一个窗口
  • gh:函数的声明(参数)
  • gt:往后标签页跳
  • gT:往前标签页跳
  • ctrl(command) + 0 :跳转到左侧文件栏
    • jk:上下选择文档
    • hl:左右选择文档,即打开和关闭文件夹
    • space:空格打开文档,或者打开关闭文件夹,按下 l 后光标跳转到文件中,如果侧边栏设置在了右边,应该按 h , 使光标向左移动
    • Enter:进入文件,光标跳转至文件内
  • ctrl + 1…n:跳转到第n个窗口,这个与网页浏览中的快捷件十分相似,在同一窗口中有多个网页打开时,也可以使用;以一及二,在桌面应用选择中,则可以使用 win + 数字对状态栏上的软件进行选择。
  • ctrl + 数字:在拆分编辑器的情况下,同样是窗口的选择,不过,这里"窗口"的定义发生了变化

2. easymotion(插件之一)

应该查看 easymotion 的官方文档, Vscode安装 Vim 之后,未配置时,默认关闭,因此我们需要启用功能需要在配置项里开启 esaymotion 插件,同时需要在配置文件 setting.json 中,设定 <leader>,:配置文件里设定的按键:leader 一般是空格键

在这里插入图片描述

  • leader leader s {char}:这里的查找是上下文均查找,按下相应的按键后,可以跳转到指定的位置,光标定位
  • leader leader f {char}:这里的查找是仅仅下文查找,功能同上
    更过功能可以查看esaymotion官方文档,Vscode 中的 Vim 文档举了不少例子
    在这里插入图片描述

3. surround (插件之一)

surround 环绕,该功能是为了方便修改成对的符号
多尝试命令,就会懂得命令的操作以及含义;如这篇笔记就是通过 Vscode 中 Vim 命令编写的,确实使我懂得了不少命令

这里贴了文档中的示例,建议先看一遍视频
在这里插入图片描述

四、参考链接

五、总结

  • Vim 中大部分的命令是可以添加数字进行操作的:如 d23d,从当前的光标向下删除23行,数字有时可以位于中间,如前,有时可以位于前面,如跳行:88gg
    在练习的过程中可以多结合数字,有时会有意想不到的效果
  • 动作是对符号,内容的选取,需要结合 v d c y(操作)使用
  • 有时可以对按键进行配置,比如 leader 按键不希望使用 space(空格键),那么可以进行更改

这里附上我的vscode 的 setting.json 中 vim配置,仅仅简单配置了一下,禁用了几个按键(上下左右键,将按键映射置为空),如果需要配置,首先查看文档,结合别人的配置文件进行理解配置,否则很容易出现 bug

    // vim setting
    "vim.easymotion": true,               //easymotion 功能启用
    "vim.incsearch": true,                  //incsearch 功能启用
    "vim.useSystemClipboard": true,        //使用系统剪贴板,启用   
    "vim.useCtrlKeys": true,               //使用 Ctrls 按键
    "vim.hlsearch": true,                  //启用 hlsearch
    "vim.insertModeKeyBindings":[          //insert 模式下的按键绑定
        {
        "before": ["j", "j"],              //使用 before 代替 after 中的按键或者命令
        "after": ["<Esc>"]
        },

        {
            "before":["<PageDown>"],
            "after":["<Nop>"]
        }, 
        {
            "before":["<PageUp>"],
            "after":["<Nop>"]
        }, 
        {
            "before":["<Up>"],
            "after":["<Nop>"]
        }, 
        {
            "before":["<Down>"],
            "after":["<Nop>"]
        },
         {
            "before":["<Left>"],
            "after":["<Nop>"]
         },                  

        {
            "before":["<Right>"],
            "after":["<Nop>"]
        }
    ],
    "vim.normalModeKeyBindingsNonRecursive": [           //normal 模式下的按键绑定 (同上)
        {
        "before": ["<leader>", "d"],
       "after": ["d", "d"] 
        },
        {
        "before": ["<C-n>"], 
        "commands": [":nohl"] 
         },
         {
            "before":["<Up>"],
            "after":["<Nop>"]
        }, 
        {
            "before":["<Down>"],
            "after":["<Nop>"]
        },
         {
            "before":["<Left>"],
            "after":["<Nop>"]
         },                  
        {
            "before":["<Right>"],
            "after":["<Nop>"]
        }
    ],
    "vim.leader": "<space>",            //leader 按键的指定,这里规定为了 space(空格) 键,j
    "vim.handleKeys": {                //这里制定了 ctrl A 键起作用,下同(说明:ctrl A 在 Vim 中有特殊含义)
        "<C-a>": false,
        "<C-f>": true
    },
    //--------------------------  
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:33:21  更:2021-08-05 17:35:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/20 15:16:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码