-
vim4种模式
Normal普通模式(浏览)
Esc插入模式回到普通模式
普通模式下进行各种命令操作和移动
大部分情况下,使用的是浏览
Insert插入模式(编辑)
a/i/o 光标进入插入模式
A/I/O 行进入插入模式
Command命令模式(操作)
Normal模式下:进入命令模式
:q退出 :w保存
:vs(vertical split)垂直左右分屏 :sp(split) 水平上下分屏
:set nu 设置行号
:% s/java/python/g 全部替换java->python
Visual可视模式(选择)
Nomal模式下进入Visual模式
v选择字符
V选择行
ctrl+v块状选择
查看全部 -
1. 输入模式下快速纠错(终端下也有类似的快捷键)
• ctrl+h 删除上一个字符
• ctrl+w 删除上一个单词
• ctrl+u 删除当前行
• ctrl+a (终端) 快速移动到开头
• ctrl+e (终端)快速移动到结尾
• ctrl+f (终端)光标后移
• ctrl+b (终端)光标迁移
2. 快速切换 insert 和 normal 模式
insert -> normal: ctrl+c 或者 ctrl+[
gi: normal 模式切换到 insert 模式,且到上次编辑的地方查看全部 -
初识Vim



查看全部 -
课程导学







查看全部 -
## 2-13 裸的vim
- 很多初学者Vim基本命令都不熟就开始找一些复杂的强大配置
- 不利于你熟悉Vim,一旦出问题了你还不知道怎么修复
- 建议初学者还是从裸的Vim开始学习,有些场景比如服务器或者容器上我们没法配置Vim
学之前,先用对打字指法和盲打
- 编辑代码,脑子- -般比手快,盲打有利于跟上你的大脑速度
- 裸的Vim也有很多强大功能和使用方式,本章你应该学到了不少
- 学会了用Vim ,你可以在你的IDE.上安装Vim插件,几乎所有流行的编辑器和IDE工具都支持Vim插件
查看全部 -
## 2-11 vim补全大法
### 什么是补全
- 补全是根据当前环境上下文有编辑器【猜】你想输入的东西
- 比如补全一个单词、文件名、或者代码中的函数名、变量名
- vim中提供了多种补全功能,还有由插件拓展功能实现代码补全
### vim中常见的补全
vim中有很多种补全方式
| 命令 | 补全类型 |
| ------ | ---------- |
| \<C-n> | 补全关键字 |
|\<C-x>\<C-n>|当前缓冲区关键字|
|\<C-x>\<C-i>|包含文件关键字|
|\<C-x>\<C-j>|标签关键字|
|\<C-x>\<C-k>|字典查找|
|\<C-x>\<C-l>|整行补全|
|\<C-x>\<C-f>|文件名补全|
|\<C-x><C-0>|全能(Omin)补全|
### 常见的三种补全类型
- 使用Ctrl+n和Ctrl+p补全单词
- 使用Ctrl+x,Ctrl+f补全文件名
- 使用Ctrl+x,Ctrl+o补全代码,需要开启文件类型检查,安装插件
查看全部 -
## 2-10 vim宏(macro)
### 从需求说起
批量处理文本
### 什么是vim宏(macro)
- 宏可以看成是一系列命令的集合
- 我们可以使用宏【录制】一系列操作,然后用于回放
- 宏可以方便的把一下列命令用在多行文本上
### 如何使用宏
- vim使用q来录制,同时也也是q结束录制
- 使用q{register}选择要保存的寄存器,把录制的命令保存其中
- 使用@{register}回放寄存器中保存的一系列命令
### 用宏解决刚才的问题
- 献给一行加上双引号,让后在回放到其他行
- 我们先使用q开始录制,给一行加上双引号,之后使用q退出
- 在剩下的所有行中回放录制的宏
查看全部 -
## 2-7 vim多文件操作
### Buffer,Window,Tab
- Buffer是指打开的一个文件的内存缓冲区
- 窗口是Buffer可视化的分割区域
- Tab可以组织窗口位一个工作区
#### Buffer
#####Buffer-什么是缓冲区?
- vim打开一个文件后会加载文件内容到缓冲区
- 之后的修改都是针对内存着的缓冲区,并不会直接保存到文件
- 直到我们执行:w(write)的时候才会把修改内容写入到文件里
##### Buffer切换
- 使用:ls会列举当前缓冲区,然后使用:b n跳的第n个缓冲区
- :bpre :bnext :bfirst :blast
- 或者用:b buffer_name加上tab补全来跳转
#### Window窗口
窗口是可视化的分割区域
- 一个缓冲区可以分割成多个窗口,每个窗口也可以打开不同缓冲区
- <Ctrl+w>s水平分割,<Ctrl+w>v垂直分割。或者:sp和:vs
- 每个窗口可以继续无限分割
|命令|用途|
|---|---|
|<Ctrl-w>w|在窗口键来回切换|
|h|切换到左边窗口|
|j|切换到下边窗口|
|k|切换到上边窗口|
|l|切换到右边窗口|
大写时可以移动窗口
#### Tab(标签页)将窗口分组
Tab是可以容纳一系列窗口的容器(:h tabpage)
- vim 的Tab和其他编辑器不太一样,可以想象成Linux的虚拟桌面
- 比如一个Tab全用来编辑Python文件,一个Tab全是HTML文件
- 相比窗口,Tab一般用的比较少,Tab太多,管理起来也太麻烦
查看全部 -
## Vim快速增产改查
### Vim增加字符
- 进入插入模式
- 使用a/i/o进入插入模式
### Vim快速删除
如何快速删除一个字符或者单词?
- Vim在Normal模式下使用x快速删除一个字符
- 使用d(delete)配合文本对象快速删除一个单词daw(d around word),diw(删除一行,不包括空白字符)
- dd删除一行,`dt(`快速删除括号里的内容
- d$快速删除到行尾,d0快速删除到行首
- d和x都可以搭配数字来执行多次
- 使用v可以选择删除
### Vim快速修改
- 常用有三个,r(replace),c(change),s(substitute)
- Normal模式下使用r可以替换一个字符。s替换并进入插入模式
- R不断替换,Esc退出,S删除整行并进入插入模式
- 使用c配合文本对象,我们可以快速修改,cw删除单词插入,ct"删除引号中的内容
### Vim查询
- 使用/或者?进行前向或者反向搜索
- 使用n/N跳转到下一个或上一个匹配
- 使用*或者#进行当前单词的前向和后项匹配
查看全部 -
使用a/i/o进入插入模式;
ctrl+h 删除上一个字符
ctrl+w 删除上一个单词
ctrl+u 删除 当前行
使用 ctrl+c代替Esc(但是可能会中断某些插件),所以推荐使用 ctrl+[
gi 快速跳转到最后一次编辑的地方并进入插入模式
查看全部 -
1. 输入模式下快速纠错(终端下也有类似的快捷键) • ctrl+h 删除上一个字符 • ctrl+w 删除上一个单词 • ctrl+u 删除当前行 • ctrl+a (终端) 快速移动到开头 • ctrl+e (终端)快速移动到结尾 • ctrl+f (终端)光标后移 • ctrl+b (终端)光标迁移 2. 快速切换 insert 和 normal 模式 insert -> normal: ctrl+c 或者 ctrl+[ gi: normal 模式切换到 insert 模式,且到上次编辑的地方查看全部
-
1. 输入模式下快速纠错(终端下也有类似的快捷键)
ctrl+h 删除上一个字符
ctrl+w 删除上一个单词
ctrl+u 删除当前行
ctrl+a (终端) 快速移动到开头
ctrl+e (终端)快速移动到结尾
ctrl+f (终端)光标后移
ctrl+b (终端)光标迁移
2. 快速切换 insert 和 normal 模式
insert -> normal: ctrl+c 或者 ctrl+[
gi: normal 模式切换到 insert 模式,且到上次编辑的地方
查看全部 -
a:当前字符的后一个位置插入
i:当前字符的前一个位置插入
o:当前编辑位置下面新起一行
A:在行最后位置插入
I: 在行最前的位置插入
O:在当前编辑位置的上面新起一行
w:保存
wq:保存并退出(w and q)
查看全部 -
dw 删除单词光标及之后的
daw 删除单词包括之后的空格
diw 删除单词
dt
r 替换一个字符 R 一直替换
c aw 带空格 iw不带空格 并insert
s 删除当前字符并insert S 删除当前行并insert
f 行内查找 并跳转
/ 全文查找 n下一个 N上一个
* 当前单词的下一个 # 当前单词的上一个
查看全部 -
w W : next word
e E : the end of next word
b B : back
f{} t{} ; next ' last
H 屏幕开头
M 屏幕中间
L 屏幕结尾
G gg
zz
查看全部
举报