vim 学习笔记

参考课程:https://www.imooc.com/learn/1129

第一章 初识


预备 markdown知识:

  1. 列表
  • 加粗
  • 斜体
  • 删除线
  • 行内代码块’print(“This is code within certain line.”);’
  • 链接
  • 无序列表1元素1
  • 无序列表1元素2
  • 无序列表2元素1
  • 无序列表2元素2
  1. 文字引用:

    纸上得来终觉浅,觉知此事要躬行,

  2. 代码块
  • 方法1:使用4个空格(代码设置有问题)
    import javax.swing.*;

  • 方法2:三个反引号
    ‘’’java
    System.out.println(“The is a code patch.”);
    System.exit();
    ‘’’


  1. 换行
    hello
    world

  2. 段首缩进
    你以为前面空几个空格就能缩进吗?

         四个半角空格缩进
       两个全角空格缩进
      不断行的空白格

  3. 数学公式(未配置latex)

  • 段落
    $$left [ – frac{hbar^2}{2 m} frac{partial^2}{partial x^2} + V right ] Psi = i hbar frac{partial}{partial t} Psi$$
  • 行内
    This is inline: $mathbf{x}boldsymbolbeta + boldsymbolvarepsilon$
  1. 插入图片
    alt text替换文本
    bangdream
  2. 插入表格
    学号 姓名 分数
    小明 75
    小红 79
    小陆 92
    左对齐 中间对齐 右对齐

一、进入编辑的方式:

  • i(insert):在光标(cursor)前面插入 I:insert before line
  • a(append):在光标后面插入 A:append after line
  • o(open a line below) O:Open a lina above

二、Vim为何会有这些模式:

大专栏  vim 学习笔记>

###增删改查:

  1. 删除(必须熟练的点)
  • x: 删除字符,nx删除n个字符
  • d: dw //删除一个单词, dd //删除一行 ndd删除n行, dt( //删除括号内容, d$ //删除直到行尾, d0 删除直到行首
  • v: v+l or j 选中 V为行选择 +g 全选
  1. 修改
  • r(replace): 替换一个character R:不断替换后面的字符
  • c(change): 配合文本对象快速修改 +t+目标位置 删除到目标位置的值再插入 cw删除单词插入
  • s(substitute): 替换并进入插入模式 4s删除4个后替换 S:整行删除插入
  1. 查询
  • / or ? 进行前向 or 反向搜索
  • n/N 下一个/上一个
  • 使用*/#进行当前字符相关字符串匹配
  1. 替换
  • :% s/str1/str2/g 全局替换
  • :[range]s[ubstitute/[pattern]/{string}/[flags] range:10,20 or %表示全文 flags: g全局执行,c确认替换, n返回匹配次数(仅仅匹配有多少行)
  • 正则表达式查找替换 eg: % s/<quack>/jiao/g 仅替换单词quack(精确匹配单词)

###模式操作:

  1. 分屏:
  • vs
  • sp
  • q退出屏幕
  1. 可视化模式
  • 同上v, V, ctrl+v 批量选择
  • 加y 复制 加y 复制 p粘贴

###编辑技巧

  • 错误处理:ctrl+h, ctrl+w, ctrl+u
  • gi 快速切换到最后一次编辑的地方并插入
  • 修改快捷键方便手 键盘HKKB or Poker2
  • u撤销上一步。ctrl+r恢复撤销
  • 真正快速编译的技巧是放弃中文输入

###快速移动

  • hjkl
  • 在单词之间移动:w/W 移动到下一个word/WORD开头,e/E下一个word/WORD结尾
  • b/B移动到上一个word/WORD开头: WORD以空格分割
  • 行间快速移动:f+字符, ;下一个, ,上一个 t+字符 跳转到前一个字符 F在行尾反过来搜
  • 0移动到行首,$移动到行尾; ^移动到行首第一个非空白字符(同o+w), g_
  • ()句子间移动,{}段落间移动
  • 页面移动:gg文件开头,G文件结尾,ctrl+o快速返回, HML页面开头中间结尾, Ctrl+u,ctrl+f上下翻页,zz把屏幕放中间

###vim多文件编辑

  • Buffer 指的是打开的一个文件的内存缓冲区
  • ls 列出当前缓冲区, b n跳转到第n个缓冲区, :bpre :bnext :bfirst :blast b+BufferName
  • e 打开新的文件,分配新的缓冲区
  • 多窗口设置不同缓冲区进行编辑
  • ctrl+w hjkl切换窗口, ctrl+w+H/L移动窗口
  • ctrl+w+= 所有窗口大小相等 ctrl+w+_/|最大化活动窗口宽度高度
  • 标签页,使用不多 tabnew gt切换

###文本对象处理

  • [number][text object]
  • number次数 commond:d(elete) c(hange) y(yank) obj: w, s, P
原文地址:https://www.cnblogs.com/lijianming180/p/12346624.html