• VIM 入门手册, (VS Code)


    要想在VScode里使用Vim需要先行按照插件

    安装 vim 插件

    VS Code 中输入快捷键 shift + ctrl + x, 或直接打开 扩展安装导航
    搜索 vim, 选择 Vim

    , 点击 install 安装
    安装结束后就可以使用 vscode 下的 vim 模式了
    推荐: 关闭 vim 扩展的 useCtrlKeys, 保留一些 VS Code 自身的一些常用快捷键, 在 settings.json 里面添加配置 "vim.useCtrlKeys": false,

    ——————————正文开始——————————

    vim 入门

    在 vs code 中打开文件时, 文件状态为默认为 vim 下的 Normal 模式
    输入 i, 从 Normal 模式切换至 Insert 模式, 此时就可以正常输入文本了
    单击 ESC 可以返回 Normal 模式

    在 Normal 模式下可以进行如下操作

    命令(按键) 作用
    i 进入 Insert 模式
    ESC Insert 模式退回 Normal 模式
    :q 退出文件编辑 (vs code 下用不到)
    :w 保存修改文件 (vs code 下用不到)
    :wq 保存 + 推出文件 (vs code 下用不到)

    vim 定位

    vim 光标定位命令

    光标上下左右

    命令 作用 模式
    h 光标向左移动一格 Normal
    l 光标向右移动一格 Normal
    j 光标向下移动一行 Normal
    k 光标向上移动一行 Normal
    上下左右键 上下左右切换光标 Normal & Insert

    : banlk 字符是指 空格, tab, 换行, 回车等

    行内光标定位

    命令 作用 模式
    0 到当前行开头 Normal
    home 到当前行开头 Normal & Insert
    ^ 到当前行第一个不是 blank 字符的位置 Normal
    $ 到当前行末尾 Normal
    g_ 到当前行最后有一个不是 blank 字符的位置 Normal
    gg 到第一行 Normal
    nG n 为行编号, 到第 n 行 Normal
    G 到最后一行 Normal

    词汇定位

    1、默认方式, 一个单词由字母,数字和下划线组成

    命令 作用 模式
    w w(小写), 到下一个单词的开头 Normal
    e e(小写), 到下一个单词的结尾 Normal

    2、如果单词以 blank 字符分隔, 使用 大写的 E 或 W 分隔

    3、单词匹配

    命令 作用 模式
    * 移动到与当前光标匹配的下个单词(目前装的VS Code Vim 组件不生效) Normal
    # 移动到与当前光标匹配的上个单词 Normal

    括号匹配

    命令 作用 模式
    % 定位与光标所在括号相对应的另一半,(使用前要将光标定位在某个括号上) Normal

    vim 插入

    vim 插入命令,光标定位完成后,进行插入操作前的命令, 命令执行后切换至 Insert 模式

    命令 作用 模式
    a 在光标后插入, 光标定位后输入 i 命令默认是光标前插入的 Normal
    o 小写 o 在当前行之后插入新的一行,相当与回车效果 Normal
    O 大写 O 在当前行之前插入新的一行 Normal

    vim 查找

    vim 是通过正则匹配来实现的
    在 Normal 模式下, 先输入 /, 进入搜索模式
    输入想要搜索的词汇, 此时在 vs code 中会高亮所有匹配项
    单击 enter(回车) 键后, 点击 n 键就可以光标一个个定位匹配项

    vim 替换

    以下介绍的替换在 VS Code 中无法使用, 可以使用 其自带的 Ctrl + H 的替换
    语法: vim 的替换语法为: :[addr]s/待替换字符/替换字符/[option]

    : (英文冒号)

    表示替换命令开始

    [addr] 检索范围

    1、.(小数点) 表示前按行
    2、$: 表示文件最后一行
    3、%: 表示整个当前文件
    4、n(行号): 表示第 n 行
    5、n1,n2: 表示 第 n1 行到第 n2 行
    6、n, $: 表示 第 n 行到文档最后一行
    7、., $: 表示 当前行到文档最后一行
    8、., n: 表示当前行到文档第 n 行

    s 替换操作

    字母 s 表示替换操作

    [option] 操作类型

    [option] 表示操作类型
    1、g: 表示全局替换, 在检索范围内替换所有匹配项
    2、c: 表示确认替换, 在替换时需要 输入 y 一一确认
    3、p: 表示显示替代结果, 按 enter 后执行替换
    4、option 省略时仅对每行第一个匹配字符串进行替换

    例子

    :.s/from/to/ 将当前行中的第一个from,替换成to。如果当前行有多个from,则只会替换其中的第一个。
    :%s/from/to/g 将文档中所有的 from 替换成 to
    :1,5s/from/to/c 将文档的第 1 到第 5 行, 每行的第一个 from 替换成 to , 并需要确认
    :6,$s/from/to/gc 从第 6 行开始至最后一行, 将所有的 from 换从成 to, 并需要确认
    :.,7s/from/to/p 从当前行到第 7 行,将每行地一个 from 替换成 to, 替换前显示替换结果, 按回车后生效

    vim 拷贝/粘贴/删除

    vim 拷贝粘贴命令

    1、粘贴

    命令 作用 模式
    p 小写 p, 在光标之后插入拷贝项 Normal
    P 大写 P, 在光标之前插入拷贝内容 Normal
    np(nP) 重复复制 n 次 Normal

    2、拷贝

    命令 作用 模式
    y 拷贝当前行以及其后面一行,共两行 Normal
    yy 拷贝当前行 Normal
    nyy n 为大于数字, 拷贝 n 行, 第一行为光标所在行 Normal
    ye 从光标位置开始拷贝,至遇到第一个空后结束(不包括空格) Normal
    yw 从光标位置开始拷贝,至遇到第一个空后结束(包括空格) Normal
    y$ 从光标位置开始拷贝,到当前行行末, 包括空格 Normal
    y0 从光标位置开始拷贝,到当前行行首, 包括空格 Normal
    ynl 从光标位置开始, 向右拷贝 n 个字符 Normal
    ynB 从光标位置开始,向左拷贝 n 个单词 Normal

    如何拷贝某一块区域, 比较精确的选择拷贝区域?
    在 Normal 模式下, 将光标定位至目标拷贝区域的开始或结束位置,
    输入命令 v(小写) 进入试图模式
    移动光标,光标所经过的位置都被选中,(跟鼠标选中形式一样)
    区域选定结束后, 输入 y 命令, 复制成功
    如果输入 大写 V 命令, 此时只能以行为单位选中区域

    如何实现跨文件拷贝/粘贴?
    在文件 A 复制的内容在文件 B 中使用,
    使用命令 +y, 即将复制的内容添加到系统的剪切板, 供其他程序使用 (这个命令在 debian 下不好用, 只在全选复制的情况下有用, 复制部分的话使用右键复制,)
    使用命令 +p, 可以将系统剪切板中的内容,粘贴到当前文件 (这个命令不好用)
    在 Insert 模式下 (VS Code 中 Normal 模式也可以), 使用快捷键 shift+insert 可以将系统剪切板中的内容,粘贴到当前文件, (推荐使用)

    3、删除

    命令 作用 模式
    dd 剪切当前行 Normal
    ndd 剪切 n 行, 当前行为第一行 Normal
    dw 从光标位置开始剪切, 至遇到第一个空后结束(包括空格) Normal
    de 从光标位置开始剪切, 至遇到第一个空后结束(不包括空格) Normal
    d$ 从光标开始位置剪切, 至当前行行末, 包括空格 Normal
    d0 从光标开始位置剪切, 至当前行行首, 包括空格 Normal
    dl 删除光标所在字符 Normal
    dh 删除光标所在位置之前字符 Normal
    dnl 从光标位置开始, 向右剪切 n 个字符 Normal
    dnh 剪切光标之前的 n 个字符(不包括光标所在字符) Normal
    dH 剪切当前光标之前所有内容 Normal
    dL 剪切当前光标之后所有内容(包括光标所在字符) Normal

    如何删除胡一块区域, 比较精确地删除区域
    同上文的拷贝一样, 只需把 拷贝命令 y 换成 删除命令 d 即可

    撤销/取消撤销修改

    撤销修改命令 和 取消撤销修改命令

    命令 作用 模式
    u 撤销上步修改 Normal
    ctrl+r 恢复被撤销的修改 Normal

    补充

    1、重复之前的命令 Normal 模式下输入 .(小数点), n. 重复之前命令 n 次

    2、对括号内内容操作 (将光标定位至左括号)

    • ci’、ci”、ci(、ci[、ci{、ci< 分别更改这些配对标点符号中的文本内容
    • di’、di”、di(或dib、di[、di{或diB、di< 分别删除这些配对标点符号中的文本内容
    • yi’、yi”、yi(、yi[、yi{、yi< 分别复制这些配对标点符号中的文本内容
    • vi’、vi”、vi(、vi[、vi{、vi< 分别选中这些配对标点符号中的文本内容

    3、全选(复制/删除)

    Normal模式下, 首先全选文档: ggVG/ggvG => (gg 让光标移动到首行, v/V 进入Vision 模式, G 移动到最后一行)
    输入 d 删除选中内容, 输入 y 复制选中内容

    4、代码缩进

    Normal 模式下, 进入 Vision 模式, 选中目标代码块,
    快捷键 shift+> 向右缩进
    快捷键 shift+< 向左缩进

    ——————————正文结束——————————

    对于vi/vim:这是一个你不需要使用鼠标,不需使用小键盘,只需要使用大键盘就可以完成很多复杂功能文本编辑的编辑器。不然,Visual Studio也不就会有vim的插件了

    The desire of his soul is the prophecy of his fate
    你灵魂的欲望,是你命运的先知。

  • 相关阅读:
    Visual Studio 2013各个版本密钥(亲测可用)
    Duilib bkimage 属性
    VC++ 文件夹的打开
    孙鑫- VC++在对话框程序中让对话框捕获WM_KEYDOWN消息
    OpenCV窗口置顶的方法
    OpenCV设置感兴趣区域(roi)
    Ubuntu 12,04安装ROS Hydro
    VC获取任务栏窗口及其子窗口句柄
    关于调用静态链接库LIB,提示重定义或库冲突的错误
    DuiLib如何禁用双击标题栏窗口最大化
  • 原文地址:https://www.cnblogs.com/RioTian/p/13945795.html
Copyright © 2020-2023  润新知