IDEA安装Vim插件并配置共享VIM和Windows的剪切板
这两天学习了Vim的基本使用后,认为Vim的工作效率还是相当高的,所以便有了Idea中配置Vim使用的想法。也是经历了多重困难,查询了多个教程思考后整理出来的。
1. 下载Vim插件
1.1 IDEA的插件市场有提供vim的插件,我们只需要打开idea的插件进行搜索即可
File --> Settings --> Plugins --> Marketplace
1.2 搜索Vim并安装相关插件
根据结构找到Marketplace的搜索框,输入Vim进行搜索,在搜索到的结果中找到 IdeaVim
,IdeaVimExtension
,IdeaVim-EasyMotion
这三个插件,点击Install(图中我已经安装过了,就不再卸载安装了)
安装完成后点击确认后会提示是否重启,点击 Restart重启 即可,重启后生效!
2. 使用Vim
2.1 检测Vim是否生效
重启后,可通过光标检测Vim是否生效。如下图所示:
我们能看到Vim的
光标点
和右下方的 Vim标识
,此时,Idea编辑框里就需要使用vim的命令才能进行编辑。
到这里来,Idea已经完成安装Vim了,但是,想要在Idea中使用vim顺手,那就必须要共享剪切板。
2.2 配置Vim
说明:
vim使用的是vim的一个剪切板缓冲区,而Windows使用的是Windows的剪切板缓冲区,这就导致Windows复制的内容不能通过vim命令进行粘贴,vim复制的内容也不可以通过Ctrl + V进行粘贴。这就会导致开发的工作效率变慢,因此需要共享剪切板!
相信大家都对Linux系统不陌生,我们使用Linux常用的就是Vim,想要简单高效的使用vim我们会在Linux系统中创建vim的配置文件
,同样,我们需要在Windows系统中创建Vim的配置文件
2.2.1 创建配置文件
打开Windows的系统盘(默认为C盘),找到用户(user)
C:–> User(用户) --> administrator(或者你登录的用户),在该文件夹下创建文件名为 .ideavimrc
的文件(如下图所示:)
2.2.2 右键编辑创建的点文件(.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
生效。
2.3 Idea中配置修改快捷键新
vim提供的有命令模式,所以vim的常用命令和我们的常用命令的作用会不一致,因此我们需要根据自己的习惯去配置这些快捷键信息。
2.3.1 打开Vim快捷键页面
File --> Settings --> Editor -- Vim
打开Vim的快捷键页面。
2.3.2 修改快捷键激活命令
上图中我们能看到快捷键对应的Handler,Handler选中为Vim,则代表该快捷键触发的Vim的作用
;选中为IDE,则代表该命令触发的是IDE的作用
,这个选项可以根据个人爱好进行调整。
附一张个人喜用的快捷键触发图片(供参考)
3. Vim相关命令
前期如果对Vim的命令使用不够熟练,则会导致开发起来相当困难,当然,当Vim的命令使用的相当顺心的时候则是另一种感觉了!坚持练下去才是最可贵的。这里小编提供自己的Vim命令笔记供大家参考使用。
3.1移动(基本)
3.1.1 上、下、左、右
命令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 无名指 |
3.1.2 行内移动
命令 | 英文 | 功能 |
---|---|---|
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
0(数字零) | 移动到行首 | |
^(shift+6) | 移动到行首,第一个非空白字符的位置 | |
$(shift+4) | 移动到行尾 |
3.1.3 行数移动
命令 | 英文 | 功能 |
---|---|---|
gg | go | 文件顶部 |
G | go | 文件末尾 |
数字gg | go | 移动到数字对应的行数 |
数字G | go | 移动到数字对应的行数 |
:数字 | 移动到数字对应的行数 |
3.1.4 屏幕移动
命令 | 英文 | 功能 |
---|---|---|
Ctrl + b | back | 向上翻页 |
Ctrl + f | forword | 向下翻页 |
Ctrl + u | 向上翻半页 | |
Ctrl + d | 向下翻半页 | |
H | head | 屏幕顶部 |
M | middle | 屏幕中间 |
L | low | 屏幕底部 |
3.2 移动(程序)
3.2.1 段落移动
vi
中使用 空行 来区分段落- 在程序开发时,通常一段功能相关的代码会写在一起 – 之间没有空行
命令 | 功能 |
---|---|
{ | 上一段 |
} | 下一段 |
3.2.2 括号切换
- 在程序世界中,
{}
,[]
,()
使用的频率很高,而且 都是成对出现的
命令 | 功能 |
---|---|
% | 括号匹配及切换 |
3.2.3 标记
- 在开发时,某一块代码可能需要稍后处理,例如:编辑、查看
- 此时先使用
m
增加一个标记,这样可以 在需要时快速地跳转回来,或者执行其他编辑操作。 - 标记名称 可以是
a~z
或者A~Z
之间的任意一个字母 - 添加了标记的 行如果被删除,标记同时被删除
- 如果 在其他行添加了相同名称的标记,之前添加的标记也会被替换掉
命令 | 英文 | 功能 |
---|---|---|
mx | mark | 添加标记x,x可以是az或者AZ之间的任意一个字母 |
'x | 直接定位到标记x所在位置 |
3.3 选中文本(可视模式)
- 学习
复制
命令前,应该先学会 怎么样选中要复制的代码 - 在
vi
中要选择文本,需要先使用Visual
命令切换到 可视模式 vi
中提供了 三种 可视模式,可以方便程序员选择 选中文本的方式- 按
ESC
可以放弃选中,返回到 命令模式
命令 | 模式 | 功能 |
---|---|---|
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过的完整行 |
Ctrl + v | 可视块模式 | 垂直方式选中文本 |
- 可视模式下,可以和 移动命令 连用,例如:
ggVG
能够选中所有内容
3.4 撤销和恢复撤销
- 在学习编辑命令之前,先要知道怎样撤销之前一次 错误的编辑操作!
命令 | 英文 | 功能 |
---|---|---|
u | undo | 撤销上次命令 |
Ctrl + r | redo | 恢复撤销的命令 |
3.5 删除文本
命令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在字符,或选中文本 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标所在行,可以ndd复制多行 |
D | delete | 删除至行尾 |
提示:如果使用 可视模式 已经选中了一段文本,那么无论使用
d
还是x
,都可以删除选中文本
- 删除命令可以和 移动命令 连用,以下是常用的组合命令:
dw # 从光标位置删除到单词末尾
d0 # 从光标位置删除到一行的起始位置
d} # 从光标位置删除到段落结尾
ndd # 从光标位置向下连续删除n行
d代码行G # 从光标所在行 删除到 指定代码行 之间的所有代码
d'a # 从光标所在行 删除到 标记a 之间的所有代码
3.6 复制、粘贴
vi
中提供有一个 被复制文本的缓冲区- 复制 命令会将选中的文字保存在缓冲区
- 删除 命令会将删除的文字保存在缓冲区
- 在需要的位置,使用 粘贴命令可以将缓冲区的文字插入到光标所在位置
命令 | 英文 | 功能 |
---|---|---|
y(移动命令) | copy | 复制 |
yy | copy | 复制一行,可以nyy复制多行 |
p | paste | 粘贴 |
3.7 替换
命令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替换当前字符 | 命令模式 |
R | replace | 替换当前行光标后的字符 | 替换模式 |
R
命令可以进入 替换模式 ,替换完成后,按下ESC
可以回到 命令模式- 替换命令 的作用就是不用进入 编辑模式 ,对文件进行轻量级的修改
3.8 缩排和重复执行
命令 | 功能 |
---|---|
>> | 向右增加缩进 |
<< | 向左减少缩进 |
. | 重复上次命令 |
- 缩排命令 在开发程序时,统一增加代码的缩进 比较有用!
- 一次性 在选中代码前增加4个空格,就叫增加缩进
- 一次性 在选中代码前删除4个空格,就叫减少缩进
- 在 可视模式 下,缩排命令只需要使用一个
>
或<
在程序汇总,缩进通常用来表示代码的归属关系
- 前面空格越少,代码的级别越高
- 前面空格越多,代码的级别越低
3.9 查找
常规查找
命令 | 功能 |
---|---|
/str | 查找str |
- 查找到指定内容之后,使用
Next
查找下一个出现的位置:n
查找下一个N
查找上一个
- 如果不想看到高亮显示,可以随便找一个文件中不存在的内容即可
单词快速匹配
命令 | 功能 |
---|---|
* | 向后查找当前光标所在单词 |
# | 向前查找当前光标所在单词 |
- 在开发中,通常单词快速匹配,可以快速看到这个单词在其他什么位置使用过
3.10 查找并替换
- 在
vi
中查找和替换命令需要在 末行模式 下执行 - 记忆命令格式:
:%s///g
3.10.1 全局替换
- 一次性 替换文件中的 所有出现的旧文本
- 命令格式如下:
:%/旧文本/新文本/g
3.10.2 可视区域替换
- 先选中 要替换文字的 范围
- 命令格式如下:
** : s/旧文本/新文本/g**
3.10.3 确认替换
- 如果把末尾的
g
改成gc
在替换的时候,会有提示!推荐使用
:%s/旧文本/新文本/gc
y
-yes
确认替换n
-no
不替换a
-all
替换所有q
-quit
退出替换l
-last
最后一个,并把光标移动到行首^E
向下滚屏^Y
向上滚屏
3.11 插入命令
- 在
vi
中除了常用的i
进入 编辑模式 外,还提供了一下命令同样可以进入编辑模式:
命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
I | insert | 在行首插入文本 | 较常用 |
a | append | 在当前字符后添加文本 | |
A | append | 在行末添加文本 | 较常用 |
o | 在当前行后面插入一空行 | 常用 | |
O | 在当前行前面插入一空行 | 常用 |
3.12 常用的 末行命令:
命令 | 英文 | 功能 |
---|---|---|
:w | write | 保存 |
:q | quit | 退出,如果么有保存,不允许退出 |
:q! | quit | 强行退出,不保存也退出 |
:wq | write & quit | 保存并退出 |
:x | 保存并退出 | |
:%s///gc | 确认搜索并替换 |
在实际开发中,可以是用
w
命令,阶段性的备份代码
3.13 在末行模式或搜索模式下粘贴文本
当我们在搜索模式或末行模式下粘贴文本时,我们会发现 p
命令不可用
正确的粘贴命令为:
Ctrl + R
后 Shift + '
即可粘贴文本到搜索模式或末行模式!
4. 希望能帮助到你!
相逢是缘,如果你喜欢该文章或该文章对你有帮助,可以点个收藏,点个关注!