IdeaVim的使用
注意
[n]:表示数字(不包括中括号)
加粗的表示常用的
基本操作
插入
| 字母 | 作用 | 
|---|---|
i | 
在光标之前,进入插入模式 | 
I | 
在本行开头,进入插入模式 | 
a | 
在光标之后,进入插入模式 | 
A | 
在本行结尾,进入插入模式 | 
o | 
在本行之后新增一行,并进入插入模式 | 
O | 
在本行之前新增一行,并进入插入模式 | 
s | 
删除当前字符,并进入插入模式 | 
S | 
删除当前行中的所有文本,并进入插入模式 | 
查找
[n]f{word}:用来查找当前行当前光标后是否存在某个字符{word},[n]代表第n个
t + 字母:跳转到当前行内第一个匹配的字母前一个字符(按:可继续跳转至下一个)
移动
ctrl+ u | ctrl + dctrl + u:屏幕向上翻一页ctrl + d:屏幕向下翻一页0 | $ | ^0:移动到行首$:跳转到该行的第一个字符^:跳转到改行的最后一个字符%:跳转到(){}[](如果放在一个括号上,会跳转到匹配的括号上)[n]h/j/k/l:比如20h表示向左移动20字符gg | Ggg:移动到第一行G:移动到最后一行H | M | LH:移动到当前页的第一行(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


