码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vim练级攻略(精简版)


    vim推荐配置:

    curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

    0. 规定

    Ctrl-λ 等价于 

    :command 等价于 :command <回车>

    n 等价于 数字

    blank字符 等价于 空格,tab,换行,回车等

    1. 命令模式 -> NORMAL

    <operation> 其他 <motion> 

    1.0 复制

    • yy 等价于 shift + y  → 复制当前行
    • nyy → 从本行向下,复制n行
    • yw → 从光标开始复制到这个单词尾
    • nyw → 从光标开始复制到n个单词尾

    1.1 删除字符

    • x → 删除光标所在的一个字符 s → 删除光标所在的一个字符 并 进入插入模式
    • X → 删除光标前一个字符
    • nx → 删除光标所在的n字符
    • nX → 删除光标前n一个字符
    • dt字符 → 删除所有的内容,直到遇到字符
      • 比如dt"表示从当前光标开始 一直删除 直到''

    1.2 查找

    • f + 字符 → 查找字符 

    • df + 字符 → 从这个光标开始 一直 删除到字符结束

    • cf + 字符 → 从这个光标开始 一直 删除到字符结束 并进入插入模式

    1.3 命令 →  插入模式

    • i  → 光标不动 并 进入插入模式
    • a → 光标向后 并 进入插入模式
    • o → 向下新增一行 并 进入插入模式
    • O → 向上新增一行 并 进入插入模式
    • cw → 从光标位置 删除 连续字符 并 进入 插入模式(可以有多种组合)
    • cnw → 从光标位置 删除 连续n字符 并 进入 插入模式(可以有多种组合)
    • shfit + i → 光标移动到行首 并 进入插入模式
    • shift + a → 光标移动到行尾 并 进入插入模式

     1.4 简单的光标移动

    • 0 → 数字零,到行头
    • → 到本行行尾
    • → 到本行第一个不是blank字符的位置
    • g_ → 到本行最后一个不是blank字符的位置

    1.5 对文件操作

    • :e  → 打开文件
    • :w → 保存文件
    • :q! → 退出文件 且 不保存
    • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
    • :saveas  → 另存为 ,还会打开这个文件
    • :bn 和 :bp → 切换文件,下一个文件,上一个文件 (n表示next,p表示prev)
    • :n 文件名→ 切换到这个文件

    1.6 重复命令

    1. . → (小数点) 可以重复上一次的命令
    2. N → 重复某个命令N次

    1.7 高效的光标移动

    1.7. 1 按行移动 

    • gg → 到第一行
    • G → 到最后一行
    • 数字+G → 到第 几行,或者: 数字→到第几行
    • n + enter→ 向下跳几行

    1.7.2 按单词移动

    以默认方式(字母,数字和下划线) 为分割符

    • w → 移动到下一个单词的开头。b 则表示 上一个单词的开头
    • e → 移动到本单词 或 下一个单词的结尾。

    以blank字符为分隔符

    • shift + w → 到下一个单词的开头,shift +  b 则表示 上一个单词的开头
      • shift + e → 移动到本单词 或 下一个单词的结尾。

    1.7.3 (最强)在同一行的光标移动

    从左向右 (正方向)

    • f+字符→光标移动到这个字符处
    • t+字符→光标移动到这个字符的前一个位置

    从右向左 (反方向)

    • shift + f+字符→光标移动到这个字符处
    • shift + t+字符→光标移动到这个字符的后一个位置

    注: 数字 +  f + 字符→移动到当前的第几个字符上

    注:


    1.8 字符大小写转换

    • ~ → 完成光标所在位置字符的大小写切换 

    • n~ → 完成光标所在位置开始往后的n个字符的大小写切换

     1.9 最强的光标移动 

    • % : 匹配括号移动,包括 (, {, [.(需要把光标先移到括号上)
    • * 和 #:  匹配光标当前所在的单词,移动光标到下一个(或上一个)
      匹配单词(*是下一个,#是上一个)

    1.10 翻页 

    •  → 上翻一页
    •  → 下翻一页
    • → 上翻半页
    • → 下翻半页

    1.11 替换字符

    • r → 替换光标所在位置的字符
    • R → 替换光标所到位置的字符,直到按下「Esc」键为止

    1.12 (重要)区域选择 

    a 或 i

    • action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。

    • object 可能是: w 一个单词, W一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。
    • a(包括object),
    • i(不包括object),

      1.13 (重要)块操作: 

      1.13.1 快速注释 

      • 按下 ctrl+v 进入可视化模式;
      • 上下键(只是上下键)移动光标,选中多行的开头;
      • 按下大写的I,此时进入insert插入模式;
      • 输入要插入的注释符,如:#、//;
      • 按下ESC,就会看到多行代码被注释。 

      1.14 (重要)自动提示

       和 

       

      •   表示自动补齐的下一个
      • 表示自动补齐的上一个

      1.15 宏录制: qa 操作序列 q, @a, @@ 

      • qa 把你的操作记录在寄存器 a。
      • q : 停止录制
      • 于是 @a 会replay被录制的宏。
      • @@ 是一个快捷键用来replay最新录制的宏

      1.15.1实际操作->快速编号

      注 : Y 等价于 yy

      • qaYpq→
        • qa 开始录制
        • Yp 复制当前行,并粘贴
        •  增加1
        • q 停止录制
      • 先预执行一次: @a → 在1下面写下 2
      • 重复执行多次 @@ → 在2 正面写下3
      • 现在做 5@@ 会创建新的5行,并把数据增加到 8

       2. 可视化模式

      • v →进入单个选择
      • V →进入行选择
      • →进入块选择

       2.1 实际操作 -> 在所有行尾加;

      •         
      • 选中相关的行 (可使用 j 或  或是 /pattern 或是 % 等……)
      • $ 到行最后
      • A+字符,按 ESC。

      2.2 其他操作 

      • J → 把所有的行连接起来(变成一行)
      • < 或 > → 左右缩进
      • = → 自动给缩进(非常好用)

      3. 底行模式->COMMAND 

      • : vs+文件名:分屏操作
      •  :wq → 存盘 + 退出 (:w 存盘, :q 退出)
      • :help  → 显示相关命令的帮助。你也可以就输入 :help 而不跟命令
        (退出帮助需要输入:q)
      • :!cmd:不退出vim执行对应的命令(执行命令行,编译,运行,查看man等等)
      • /pattern → 搜索 pattern 的字符串(如果搜索出多个匹配,可按n键到下一个)

      4. 分屏操作

      4.1 分屏启动Vim

      1. vim -On file1 file2 ... 使用大写的O参数来垂直分屏。
      2. vim -on file1 file2 ...使用小写的o参数来水平分屏。

      4.2 创建水平 && 垂直分屏

      1. :split → 创建水平分屏 等价于  + s
      2. :vsplit → 创建垂直分屏  等价于  + v
      3. :sp filename 上下分割,并打开一个新的文件。
      4. :vsp filename 左右分割,并打开一个新的文件。

      4.3 关闭分屏

      1. c 关闭当前窗口。
      2. q 关闭当前窗口,如果只剩最后一个了,则退出Vim。

      4.3 在分屏中移动光标

      •   + dir : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。

      • + w : 把光标移到下一个的屏中。

      4.4 更改分屏的屏幕尺寸

      • + = : 让所有的屏都有一样的高度。 
      • + : 增加高度
      • - : 减少高度
      • + _ : 最大化尺寸

      5. vim改键位的操作 

      •  vim的配置文件都在vimrc里面
      • nnoremap 新按键 老按键
    • 相关阅读:
      Shell学习--Shell变量
      AI:业余时间打比赛—挣它个小小目标—【阿里安全×ICDM 2022】大规模电商图上的风险商品检测比赛
      SpringMVC(1)
      Kafka学习——梳理bin目录下各个脚本的用法(五)
      位运算的应用----->实现加减乘除
      GIS前端-地图事件编程
      虚幻引擎 UE5 增强输入系统
      leetcode 43.字符串相乘
      快来看看Python内置函数一览表
      WPF控件4
    • 原文地址:https://blog.csdn.net/LYC_462857656/article/details/129829433
      • 最新文章
      • 攻防演习之三天拿下官网站群
        数据安全治理学习——前期安全规划和安全管理体系建设
        企业安全 | 企业内一次钓鱼演练准备过程
        内网渗透测试 | Kerberos协议及其部分攻击手法
        0day的产生 | 不懂代码的"代码审计"
        安装scrcpy-client模块av模块异常,环境问题解决方案
        leetcode hot100【LeetCode 279. 完全平方数】java实现
        OpenWrt下安装Mosquitto
        AnatoMask论文汇总
        【AI日记】24.11.01 LangChain、openai api和github copilot
      • 热门文章
      • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
        奉劝各位学弟学妹们,该打造你的技术影响力了!
        五年了,我在 CSDN 的两个一百万。
        Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
        面试官都震惊,你这网络基础可以啊!
        你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
        心情不好的时候,用 Python 画棵樱花树送给自己吧
        通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
        13 万字 C 语言从入门到精通保姆级教程2021 年版
        10行代码集2000张美女图,Python爬虫120例,再上征途
      Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
      正则表达式工具 cron表达式工具 密码生成工具

      京公网安备 11010502049817号