IdeaVim的使用
注意
[n]
:表示数字(不包括中括号)
加粗的表示常用的
基本操作
插入
字母 | 作用 |
---|---|
i |
在光标之前,进入插入模式 |
I |
在本行开头,进入插入模式 |
a |
在光标之后,进入插入模式 |
A |
在本行结尾,进入插入模式 |
o |
在本行之后新增一行,并进入插入模式 |
O |
在本行之前新增一行,并进入插入模式 |
s |
删除当前字符,并进入插入模式 |
S |
删除当前行中的所有文本,并进入插入模式 |
查找
[n]f{word}
:用来查找当前行当前光标后是否存在某个字符{word},[n]代表第n个
t + 字母
:跳转到当前行内第一个匹配的字母前一个字符(按:
可继续跳转至下一个)
移动
ctrl+ u | ctrl + d
ctrl + u
:屏幕向上翻一页ctrl + d
:屏幕向下翻一页0 | $ | ^
0
:移动到行首$
:跳转到该行的第一个字符^
:跳转到改行的最后一个字符%
:跳转到()
{}
[]
(如果放在一个括号上,会跳转到匹配的括号上)[n]h/j/k/l
:比如20h表示向左移动20字符gg | G
gg
:移动到第一行G
:移动到最后一行H | M | L
H
:移动到当前页的第一行(head)M
:移动到编辑器中部(medium)L
:移动到当前页的最后一行(last)[n]w
:移动到后面单词的开始位置e
:移动到下一个词语的末尾(end)b
:移动到上一个单词的开头(begin)zz
:将光标处文本移到屏幕中央[n]
:输入数字加上enter,光标向下移动n行{ | }
:切换到段首
替换、删除、撤销
替换
r
:输入r之后,再输入字符,就能进行替换了
删除
c(change)
caw/ciw
:删除当前单词,并进入插入模式
cw
:在单词中只会删除后面的(比如光标在change在a,使用cw之后是ch)(dw则是删除之后不进入插入模式)
cc
:删除当前行进入插入模式
caw
和ciw
的区别:caw会删除单词周围的空格,而ciw不会
d(delete)
[n]dd
:删除光标所在的向下n行(常用dd删除当前行)
dG
:删除光标行及其以下行的全部内容(ggdG:删除全部)
x
x
:删除光标处字符
X
:删除光标前面的字符
撤销
u
:撤销
ctrl + r
:回退上一步被撤销的操作
U
:回到当前行的初始状态
复制、粘贴
复制
"+y
:复制内容到系统剪切板(注意要按三个键:", +, y)
[n]yy
:复制光标所在的向下n行(常用yy复制当前行)
yaw
:复制当前单词(aw:all words)
y4j
:复制向下4行的内容(其他的也类似)
yfr
:复制到r的内容
粘贴
"+p
:粘贴系统剪切板的内容
p
:将复制的数据在光标下一行贴上
P
:贴在上一行
格式化代码
自动格式化
==
:对光标所在行进行自动格式化对齐
gg=G
:对整个文件都格式化对齐
={motion}
: 自动格式化 {motion} 操作前后的行。{motion}
可以是 vim 里面任意移动光标的操作。例如常见的 j、k、G、%
等。%
用于移动光标到匹配的括号上。当光标在 {
或者 }
上时,=%
会格式化整个{}括起来的内容,包括 {}
自身
=a{
当光标所在行位于{}花括号内时,自动格式化对齐整个{}里面的内容,包括{}
这两个花括号所在的行也会一起格式化,以{
的上一行为基准来对齐。如果{
自身的对齐错乱了,可以把{
所在的行也一起对齐。=i{
当光标所在行位于{}花括号内时,自动格式化对齐整个{}里面的内容,不包括{}
这两个花括号所在的行,以{
所在的行为基准来进行对齐。如果{
自身所在行的对齐错乱,不会把{
所在的行也一起对齐。
手动格式化
>>
:把光标所在行向右增加缩进
<<
:把光标所在行向左减少缩进
类似的也有:>{motion}
和<{motion}
>a{
当光标所在行位于{}花括号内时,将整个{}里面的内容向右增加缩进,包括{}
这两个花括号所在的行也会一起缩进。>i{
当光标所在行位于{}花括号内时,将整个{}里面的内容向右增加缩进,不包括{}
这两个花括号所在的行,它们自身的行不会被缩进。
其他
J
:将光标所在行与下一行结合成同一行
ctrl + g
:显示文件信息
.
:重复上一次的操作
可视模式
v
,加上h/j/k/l
可以选中文本
V
:选中整行
d
:删除选中文本
p
:复制选中文本
ggvG
:选中全部
底线模式
按/
或:
进入底线模式
搜索/
/word
:向光标之下寻找一个叫word的字符串
?word
:与/word
类似,不过是向上查找
输入以上两条命令之后,按下enter之后:
n
:跳转下一个匹配结果
N
:跳转上一个匹配结果
要想回到之前的光标处:ctrl + o
去新的光标处:ctrl + i
替换:
:%s/source/target/g
:从第一行到最后一行寻找 word1
字符串,并将该字符串取代为 word2 !(常用)
- %s 全文搜索
- source 代表要替换单词
- target 代表替换的目标
- /g 代表全文替换
:g/^\s*$/d
: 删除空行以及只有空格的行
其他
:w
:保存文件
:[n]
:跳转到第n行
ctrl组合键
ctrl+v:列选择——功能介绍
常用操作
有用的组合
yaw 复制一个单词 (常用) daw 删除一个单词 (常用) caw 剪切一个单词到粘贴板,可利用 p 进行粘贴。(常用)
复制当前行并修改
yy
复制当前行private String username;
p
将复制的内容进行粘贴f;
跳转到字符;
处,这里其实就是相当于行位。h
向左移动一个光标ciw
删除当前处的词,并进入插入模式
password
输入 password 完成
删除多行
V
进入内容选择模式(大V能选择整行)kkk
向上移动 3 行,并进行选中d
删除选中部分
删除特定内容
di"
删除""
内的内容(i是in)
若想删除之后立即进入插入模式,用ci"
类似的,d替换成c可以立即进入插入模式
di(
删除()
内的内容
di{
删除{}
内的内容
.vimrc的配置
禁用方向键
在插入模式和normal模式禁用 []map:映射命令(前面的中括号填模式)
1
2
3
4
5
6
7
8
9
10
11imap <Up> <Nop> // 表示在插入模式中,将方向键上,<Nop>表示什么也不做
nmao <Up> <Nop> // 表示在正常模式中
imap <Down> <Nop>
nmap <Down> <Nop>
imap <Left> <Nop>
nmap <Left> <Nop>
imap <Right> <Nop>
nmap <Right> <Nop>
ctrl+j/ctrl+k移动4行, ctrl+u/ctrl+d移动9行(默认移动半屏)
1
2
3
4nmap <C-j> 4j
nmap <C-k> 4k
nmap <C-u> 9k
nmap <C-d> 9j