【最简单的vim教程】vim学习笔记-基础操作
说明
- C-字母 = Ctrl + 字母
- char = 任意字符
开始编辑
insert
按键 | 功能 | 说明 |
---|---|---|
i(I) | insert | 当前位置插入(当前行前) |
a(A) | append | 当前字符后面插入(当前行后) |
o(O) | open a line below | 当前行的下面(当前行上面) |
模式
模式 | 功能 | 说明 |
---|---|---|
普通模式(ESC) | normal | 操作和移动 |
插入模式(i,a,o) | insert | 编辑 |
命令模式(:) | command | 执行命令 |
可视模式(v,V,C-v) | visual | 选择 |
可视模式
visual
按键 | 说明 |
---|---|
v | 选中字符 |
V | 选中当前行 |
C-v | 方块选择 |
插入模式技巧
insert
按键 | 功能 | 说明 |
---|---|---|
C-h | 删除 | 上一个字符 |
C-w | 删除 | 当前单词 |
C-u | 删除 | 当前行(终端可使用) |
C-a | 移动到开头 | 终端 |
C-e | 移动到结尾 | 终端 |
切换insert和normal模式
按键 | 功能 | 说明 |
---|---|---|
C-[ | 切换到normal | 代替ESC |
C-c | 切换到normal | 代替ESC |
gi | 跳转到上一次编辑的位置操作 |
普通模式
normal
快速移动
按键 | 功能 | 说明 |
---|---|---|
hjkl | 移动 | 上下左右 |
w(W) | 移动 | 下一个单词开头 |
e(E) | 移动 | 下一个单词结尾 |
b(B) | 移动 | 上一个单词开头 |
大写以空白格为分隔符
行间搜索移动
按键 | 功能 | 说明 |
---|---|---|
f{char}(F) | 跳转 | 跳转到char上(往前搜) |
t{char} | 跳转 | 跳转到char前一个字符 |
; or , | 继续 | 继续查找 |
水平移动
按键 | 功能 | 说明 |
---|---|---|
0 | 移动 | 移动到行首 |
$ | 移动 | 移动到行尾 |
页面移动
按键 | 功能 | 说明 |
---|---|---|
gg | 移动 | 文件开头 |
G | 移动 | 文件结尾 |
C-o | 移动 | 快速返回上一位置 |
H/M/L | 移动 | 屏幕开头/中间/尾 |
C-u | 翻页 | 上 |
C-f | 翻页 | 下 |
zz | 翻页 | 中间 |
删除命令
按键 | 功能 | 说明 |
---|---|---|
{number}x | 删除 | 删除一个字符 |
diw | delete | 删除一个单词(不删除空格) |
dw | 删除word | 删除一个单词 |
{number}dd | 删除 | 删除当前行 |
dt{符号} | 删除 | 删除符号之间的内容 |
d | 删除 | 直接删除选中部分 |
快速修改
按键 | 功能 | 说明 |
---|---|---|
r(R) | 替换 | 替换一个字符(替换后面一个字符) |
c{任意命令} | 改变 | 删除然后进入i |
caw | 改变 | 删除并改变一个单词 |
s(S) | 替换 | 删除当前字符,然后进入i(删除整行) |
u | 回退 | 撤销 |
C-r | 回退 | 前进 |
查询
按键 | 功能 | 说明 |
---|---|---|
/ or ? | 查询 | |
n or N | 移动 | 下 /上 |
* / # | 移动 | 前 / 后 |
Text Object
[ number ]< command >[ text object ]
按键 | 功能 |
---|---|
viw | 选中一个单词 |
vaw | 选中一个单词(周围) |
caw | 修改一个单词 |
ci+符号 | 删除符号内的内容 |
... |
寄存器
复制粘贴
normal
按键 | 功能 |
---|---|
y(yy) | 复制(复制一行) |
p | 粘贴 |
” + y | 复制到系统剪切板 |
insert
按键 | 功能 |
---|---|
C-v | 粘贴 |
宏
按键 | 功能 |
---|---|
q{char} | 录制宏,并存在a中 |
q | 结束录制宏 |
:normal @{char} | 批量恢复录制 |
@{char} | 恢复录制 |
示例:
[]中间为示例操作流程
- q{char}
[
- I{char}当前行前加入char (例子)
- A{char}当前行后加入char(例子)
]
- q 结束录制
- 恢复录制@a
- 行选需要操作的文本
- :normal @a
【最简单的vim教程】vim学习笔记-基础操作的更多相关文章
- 简单的玩玩etimer <contiki学习笔记之九 补充>
这幅图片是对前面 <<contiki学习笔记之九>> 的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki ...
- Oracle教程之学习笔记
Oracle教程之学习笔记... ----------------------------------- Oracle教程:---学习笔记: ============================= ...
- 《python基础教程(第二版)》学习笔记 基础部分(第1章)
<python基础教程(第二版)>学习笔记 基础部分(第1章)python常用的IDE:Windows: IDLE(gui), Eclipse+PyDev; Python(command ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- ArcGIS Pro 简明教程(2)基础操作和简单制图
ArcGIS Pro 简明教程(2)基础操作和简单制图 By 李远祥 本章主要介绍ArcGIS Pro如何加载数据并进行简单的地图制作,以基本的操作为主. 上一章节介绍过,ArcGIS Pro是可以直 ...
- Javascript学习笔记二——操作DOM
Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...
- MongoDB学习笔记:Python 操作MongoDB
MongoDB学习笔记:Python 操作MongoDB Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...
随机推荐
- winEdt 使用
晚上摘抄的方法: 1.点选Options -> Options Interface 2.右边会跳出一个介面,点选Advance Configuration... -> Event Hand ...
- 01 语言基础+高级:1-4 接口与多态_day10【接口、多态】&&day11【final、匿名内部类】
day10[接口.多态] 接口三大特征——多态引用类型转换 教学目标写出定义接口的格式写出实现接口的格式说出接口中成员的特点能够说出使用多态的前提条件理解多态的向上转型理解多态的向下转型 day10_ ...
- [SDOI2019]移动金币(博弈论+阶梯Nim+按位DP)
首先可以把问题转化一下:m堆石子,一共石子数不超过(n-m)颗,每次可以将一堆中一些石子推向前一堆,无法操作则失败,问有多少种方法使得先手必胜? 然后这个显然是个阶梯Nim,然后有这样的结论:奇数层异 ...
- vue打包成app后,背景图片不显示
问题: 在使用npm run build 打包后, 如果在页面中使用img标签引入,打包后的路径是由index.html开始访问的,真正访问的是Static/img/图片名, 是正确的, 但是写在cs ...
- 直击LG曲面OLED首发现场,高端品质更出众
简直是太棒了,我可以去看LG曲面OLED电视新品发布会了.这可是LG向中国首次推出的曲面OLED电视.在网上我就已经看到其实曲面OLED电视已经在韩国.美国还有欧洲都上市了,听说现在反响还挺不错.真没 ...
- vue点击复制文本粘贴
<template> <ul> <li> <input type="text" class="inpNone&quo ...
- Iterator迭代器解决[为何禁止在foreach内增删]
迭代器的应用场景: 1.对集合进行增加删除,禁止使用foreach,循环的动态操作2.倒序遍历3.遍历循环 步入正题:为何禁止在foreach内进行增删? 先看一下代码: /** * ...
- worship|spurs|drowns out|frauds|expell|spray with|deposit|moist|gave a sigh
to have or show a strong feeling of respect and admiration for God or a god 敬奉,崇拜,信仰(上帝或神) On the is ...
- 标题艺术与技术的完美结合,LG画廊OLED电视正式发布!
由LG电子举办的"旷世巨作---面向未来的电视"主题沙龙于3月10号在王府井亚洲首家数字化奥迪展厅拉开帷幕.此次活动宣布了LG画廊OLED电视在国内市场上市.而我有幸参加了此次 ...
- spring顾问包装通知
前边说到了顾问就是通知,没有实践,这里就实践一下,证明一下. 虽然可以说顾问就是通知,但是他们还是有的一定的区别的,通知是将目标类中所有的方法都进行的增强,而顾问却可以指定到特定的方法上,也就是说顾问 ...