这两天学习了Vim的基本使用后,认为Vim的工作效率还是相当高的,所以便有了Idea中配置Vim使用的想法。也是经历了多重困难,查询了多个教程思考后整理出来的。
File --> Settings --> Plugins --> Marketplace
根据结构找到Marketplace的搜索框,输入Vim进行搜索,在搜索到的结果中找到 IdeaVim
,IdeaVimExtension
,IdeaVim-EasyMotion
这三个插件,点击Install(图中我已经安装过了,就不再卸载安装了)
安装完成后点击确认后会提示是否重启,点击 Restart重启 即可,重启后生效!
重启后,可通过光标检测Vim是否生效。如下图所示:
我们能看到Vim的 光标点
和右下方的 Vim标识
,此时,Idea编辑框里就需要使用vim的命令才能进行编辑。
到这里来,Idea已经完成安装Vim了,但是,想要在Idea中使用vim顺手,那就必须要共享剪切板。
说明:
vim使用的是vim的一个剪切板缓冲区,而Windows使用的是Windows的剪切板缓冲区,这就导致Windows复制的内容不能通过vim命令进行粘贴,vim复制的内容也不可以通过Ctrl + V进行粘贴。这就会导致开发的工作效率变慢,因此需要共享剪切板!
相信大家都对Linux系统不陌生,我们使用Linux常用的就是Vim,想要简单高效的使用vim我们会在Linux系统中创建vim的配置文件
,同样,我们需要在Windows系统中创建Vim的配置文件
打开Windows的系统盘(默认为C盘),找到用户(user)
C:–> User(用户) --> administrator(或者你登录的用户),在该文件夹下创建文件名为 .ideavimrc
的文件(如下图所示:)
将 set clipboard+=unnamed
存入该配置文件中即可共享剪切板
"共享剪切板
set clipboard+=unnamed
仅供参考
这是我的.ideavimrc中完整的配置信息(配置文件中的"
为注释):
set clipboard+=unnamed "共享剪切板
syntax on "语法高亮
" set number relativenumber "显示行号(由于Idea中有行号显示,则vim中的显示行号就不配置了)
set ruler "显示光标所在位置的行号和列号
set wrap "自动折行
set shiftwidth=4
set tabstop=4
set softtabstop=4
set expandtab "将tab替换为相应数量空格
set smartindent
set backspace=2
set co=5
set nobackup "设置取消备份 禁止临时文件生成
set noswapfile
set keep-english-in-normal " 为IdeaVim插件增加自动切换为英文输入法的功能,idea 需要安装 IdeaVimExtension plugin
set showmatch "设置匹配模式 类似当输入一个左括号时会匹配相应的那个右括号
set clipboard^=unnamed,unnamedplus
"set laststatus=2 "命令行为两行
set fenc=utf-8 "文件编码
"set mouse=a "启用鼠标
"set ignorecase "忽略大小写
set cursorline "突出显示当前行
"set cursorcolumn "突出显示当前列
set fdm=marker
添加完成后保存。保存成功后需要重启idea
生效。
vim提供的有命令模式,所以vim的常用命令和我们的常用命令的作用会不一致,因此我们需要根据自己的习惯去配置这些快捷键信息。
File --> Settings --> Editor -- Vim
打开Vim的快捷键页面。
上图中我们能看到快捷键对应的Handler,Handler选中为Vim,则代表该快捷键触发的Vim的作用
;选中为IDE,则代表该命令触发的是IDE的作用
,这个选项可以根据个人爱好进行调整。
附一张个人喜用的快捷键触发图片(供参考)
前期如果对Vim的命令使用不够熟练,则会导致开发起来相当困难,当然,当Vim的命令使用的相当顺心的时候则是另一种感觉了!坚持练下去才是最可贵的。这里小编提供自己的Vim命令笔记供大家参考使用。
命令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 无名指 |
命令 | 英文 | 功能 |
---|---|---|
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
0(数字零) | 移动到行首 | |
^(shift+6) | 移动到行首,第一个非空白字符的位置 | |
$(shift+4) | 移动到行尾 |
命令 | 英文 | 功能 |
---|---|---|
gg | go | 文件顶部 |
G | go | 文件末尾 |
数字gg | go | 移动到数字对应的行数 |
数字G | go | 移动到数字对应的行数 |
:数字 | 移动到数字对应的行数 |
命令 | 英文 | 功能 |
---|---|---|
Ctrl + b | back | 向上翻页 |
Ctrl + f | forword | 向下翻页 |
Ctrl + u | 向上翻半页 | |
Ctrl + d | 向下翻半页 | |
H | head | 屏幕顶部 |
M | middle | 屏幕中间 |
L | low | 屏幕底部 |
vi
中使用 空行 来区分段落命令 | 功能 |
---|---|
{ | 上一段 |
} | 下一段 |
{}
,[]
,()
使用的频率很高,而且 都是成对出现的命令 | 功能 |
---|---|
% | 括号匹配及切换 |
m
增加一个标记,这样可以 在需要时快速地跳转回来,或者执行其他编辑操作。a~z
或者 A~Z
之间的任意一个字母命令 | 英文 | 功能 |
---|---|---|
mx | mark | 添加标记x,x可以是az或者AZ之间的任意一个字母 |
'x | 直接定位到标记x所在位置 |
复制
命令前,应该先学会 怎么样选中要复制的代码vi
中要选择文本,需要先使用 Visual
命令切换到 可视模式vi
中提供了 三种 可视模式,可以方便程序员选择 选中文本的方式ESC
可以放弃选中,返回到 命令模式命令 | 模式 | 功能 |
---|---|---|
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过的完整行 |
Ctrl + v | 可视块模式 | 垂直方式选中文本 |
ggVG
能够选中所有内容命令 | 英文 | 功能 |
---|---|---|
u | undo | 撤销上次命令 |
Ctrl + r | redo | 恢复撤销的命令 |
命令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在字符,或选中文本 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标所在行,可以ndd复制多行 |
D | delete | 删除至行尾 |
提示:如果使用 可视模式 已经选中了一段文本,那么无论使用
d
还是x
,都可以删除选中文本
dw # 从光标位置删除到单词末尾
d0 # 从光标位置删除到一行的起始位置
d} # 从光标位置删除到段落结尾
ndd # 从光标位置向下连续删除n行
d代码行G # 从光标所在行 删除到 指定代码行 之间的所有代码
d'a # 从光标所在行 删除到 标记a 之间的所有代码
vi
中提供有一个 被复制文本的缓冲区
命令 | 英文 | 功能 |
---|---|---|
y(移动命令) | copy | 复制 |
yy | copy | 复制一行,可以nyy复制多行 |
p | paste | 粘贴 |
命令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替换当前字符 | 命令模式 |
R | replace | 替换当前行光标后的字符 | 替换模式 |
R
命令可以进入 替换模式 ,替换完成后,按下ESC
可以回到 命令模式命令 | 功能 |
---|---|
>> | 向右增加缩进 |
<< | 向左减少缩进 |
. | 重复上次命令 |
>
或<
在程序汇总,缩进通常用来表示代码的归属关系
- 前面空格越少,代码的级别越高
- 前面空格越多,代码的级别越低
常规查找
命令 | 功能 |
---|---|
/str | 查找str |
Next
查找下一个出现的位置:
n
查找下一个N
查找上一个单词快速匹配
命令 | 功能 |
---|---|
* | 向后查找当前光标所在单词 |
# | 向前查找当前光标所在单词 |
vi
中查找和替换命令需要在 末行模式 下执行:%s///g
:%/旧文本/新文本/g
** : s/旧文本/新文本/g**
g
改成 gc
在替换的时候,会有提示!推荐使用:%s/旧文本/新文本/gc
y
-yes
确认替换n
-no
不替换a
-all
替换所有q
-quit
退出替换l
-last
最后一个,并把光标移动到行首^E
向下滚屏^Y
向上滚屏
vi
中除了常用的 i
进入 编辑模式 外,还提供了一下命令同样可以进入编辑模式:命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
I | insert | 在行首插入文本 | 较常用 |
a | append | 在当前字符后添加文本 | |
A | append | 在行末添加文本 | 较常用 |
o | 在当前行后面插入一空行 | 常用 | |
O | 在当前行前面插入一空行 | 常用 |
命令 | 英文 | 功能 |
---|---|---|
:w | write | 保存 |
:q | quit | 退出,如果么有保存,不允许退出 |
:q! | quit | 强行退出,不保存也退出 |
:wq | write & quit | 保存并退出 |
:x | 保存并退出 | |
:%s///gc | 确认搜索并替换 |
在实际开发中,可以是用
w
命令,阶段性的备份代码
当我们在搜索模式或末行模式下粘贴文本时,我们会发现 p
命令不可用
正确的粘贴命令为:
Ctrl + R
后 Shift + '
即可粘贴文本到搜索模式或末行模式!
相逢是缘,如果你喜欢该文章或该文章对你有帮助,可以点个收藏,点个关注!