文章目录

  • Vim使用学习以及ideaVim
    • 方向
    • nomral模式
    • 进入插入模式
    • 删除命令
    • 粘贴命令
    • 拷贝命令
    • 替换命令
    • 修改命令
    • motion---表示操作范围的指令
    • 文件信息
    • 可视模式(visual)
    • 搜索命令
    • 替换命令
    • 执行shell命令
    • 文件另存为
    • 合并文件
    • 打开多个文件
    • 视图
    • 选择(需要在.ideavimrc文件中配置set argtextobj并:source ~/.ideavimrc)
    • 切换标签页

Vim使用学习以及ideaVim

方向

命令效果
h
j
k
l

如果光标无法连续移动的话进入终端执行命令

defaults write com.jetbrains.intellij ApplePressAndHoldEnabled -bool false

然后重启idea

nomral模式

命令效果
ctrl + [等同于esc退出插入模式

进入插入模式

命令效果
i在光标的前面进入插入模式
I在光标所在行的行首进入插入模式
a在光标的后面进入插入模式
A在光标所在行尾进入插入模式
o在光标所在行的下方插入空行并进入插入模式
O在光标所在行的上方插入空行并进入插入模式
s删除光标指定的字符并进入插入模式
S将光标所在行清空并进入插入模式

删除命令

命令效果
x删除单一字符
d删除更多的字符可以使用d命令(需要配合motion使用)如下
d0删除光标从当前位置(不包含)到该行行首的所有字符
d^同上
d$删除从光标当前位置(包含)到该行行尾的所有字符
db删除从光标当前位置(不包含)到单词起始处的所有字符
de删除从光标当前位置(包含)到单词结尾处的所有字符
dw删除从光标当前位置(包含)到下一个单词的起始处(注意, 是光标所在单词的下一个单词)的所有字符
dh删除光标前面一个字符
dl删除光标当前位置的字符
dj删除光标所在行以及下一行所有字符
dk删除光标所在行以及上一行给所有字符
dd删除光标所在行的所有字符
dgg删除从光标当前行(包含)到文件的开头的所有字符
dG删除从光标当前行(包含)到文件的末尾的所有字符
:[begin],[end] d删除指定范围
%d全文删除

粘贴命令

命令效果
p将最后一次删除的内容使用相同的格式和内容,粘贴到当前光标之后
P将最后一次删除的内容使用相同的格式和内容,粘贴到当前光标之前

⚠️:

  • 如果需要粘贴的是整行为单位, 那么p命令行将在光标的下一行开始粘贴
  • 如果拷贝的是非整行的局部字符串, 那么p命令将在光标后开始粘贴

拷贝命令

命令效果
y [数字] motion实现拷贝结合motion(一般加了数字就说明要把对应数字的字符或者行数进行拷贝)

替换命令

命令效果
r光标所在位置先点击r键之后输入新的字符即可
[数字] r表示从光标处开始, 将多个字符统一替换为点击r键后输入的新字符
R一键进入替换模式, 类似于插入模式只不过是更改光标位置的字符, esc退出

修改命令

修改和替换是不一样的, 修改会进入的是插入模式

命令效果
c [数字] motion实现修改数字表示行数(一般加了数字就说明要把对应数字的字符或者行数清空然后进行插入模式)
c0删除光标从当前位置(不包含)到该行行首的所有字符, 并进入插入模式
c^同上
c$删除从光标当前位置(包含)到该行行尾的所有字符, 并进入插入模式
cb删除从光标当前位置(不包含)到单词起始处的所有字符, 并进入插入模式
ce删除从光标当前位置(包含)到单词结尾处的所有字符, 并进入插入模式
cw删除从光标当前位置(包含)到下一个单词的起始处(注意, 是光标所在单词的下一个单词)的所有字符, 并进入插入模式
ch删除光标前面一个字符, 并进入插入模式
cl删除光标当前位置的字符, 并进入插入模式
cj删除光标所在行以及下一行所有字符, 并进入插入模式
ck删除光标所在行以及上一行的所有字符, 并在光标下一行进入插入模式
cc删除光标所在行的字符, 并进入插入模式

motion—表示操作范围的指令

命令效果
0 (标注:数字0)将光标定位到行首的位置
^同上
$将光标定位到行尾的位置
b将光标定位到光标所在单词和起始处
e将光标定位到光标所在单词的结尾处
w将光标定位到下一个单词的起始处(注意, 是光标所在单词的下一个单词)
gg将光标定位到文件的开头
GG将光标定位到文件的末尾

文件信息

这里红色框框展示的就是查看到的文件信息

命令效果
ctrl + g查看文件信息
[数字]G移动到数字的行数去
:[数字]跳转到数字的行数
%光标停留在在一对一对出现的括号等符号的某一个上面然后按下%就可以快速定位到另一半括号(对于<>无效)
[数字]>>缩进[包含光标所在行及以下的行数]
[数字]<<反缩进[包含光标所在行及以下的行数]

可视模式(visual)

命令效果
v进入可视模式, 即可批量选中

搜索命令

命令效果
/查询所想查询的字符串则高亮显示, 默认起始位置为里光标最近的那个
如果光标所在位置就是第一个那么默认搜索到的第一个是顺位的第一个也就是光标起始的第二个
使用n跳转到下一个
使用N跳转到上一个
?与/都是搜索只不过方向相反
使用n跳转到上一个
使用N跳转到下一个
:nohl在查询完之后退出高亮模式

以下十个符号是不能直接进行搜索的需要添加“\”进行转译

. * [ ] ^ % / ? ~ $

替换命令

命令效果
:s/[被替换字符串]/[替换字符串]替换光标所在行的第一个搜索到的被替换字符串,如果光标所在位置为第一个, 则被替换的是顺位第一个也就是, 光标所在位置起算的第二个
:s/[被替换字符串]/[替换字符串]/g替换光标所在行所有被替换字符
:%s/[被替换字符串]/[替换字符串]/g替换全文所有被替换字符
:%s/[被替换字符串]/[替换字符串]/gc全文自定义选择替换
会出现以下选项
y: 替换光标所在位置的被替换字符串, 然后顺位到下一个
n: 不替换当前光标所在位置的被替换字符串, 然后顺位到下一个
a: 替换当前光标所在位置开始(包含)的所有被替换字符串
q: 结束自定义替换
l: 替换第一个并回到文件起始
:[数字],[数字]s/[被替换字符串]/[替换字符串]/g表示替换某行到某行的所有被替换字符串

执行shell命令

命令效果
:!ls搜索当前文件夹下有哪些文件, 然后点击回车退出

文件另存为

命令效果
:w [文件名]另存为文件,
局部另存为需要先进入可视模式点击v进入可视模式然后选择需要的内容之后在使用:w进行另存为
(ideavim中无法另存为)
:w! [文件名]覆盖另存为

合并文件

命令效果
:r [文件名]合并文件, 将文件读取之后, 插入到当前文本尾部

打开多个文件

命令效果
-o水平并排(ideavim中无法使用)
-O垂直并排(ideavim中无法使用)
ctrl+w+w将光标切换到下一个文件(ideavim中无法使用)
对于垂直并排可使用ctrl+w+上下
对于水平并排可使用ctrl+w+左右
:qa忽略所有修改并退出
:wqa保存所有修改并退出

视图

命令效果
ctrl + d下一页
ctrl + u上一页

选择(需要在.ideavimrc文件中配置set argtextobj并:source ~/.ideavimrc)

命令效果
viw选中所在光标位置的单词
vaw选中单词并带一个空格, 默认是后方空格, 如果后面没有则带前方
via选中一个对象不包含空格和逗号
vaa在via的基础上选中逗号和空格
daa删除这个参数包含逗号和空格
caw删除一个单词包含逗号和空格并进入插入模式
cia删除这个参数并进入插入模式
caa删除这个参数逗号和空格并且进入插入模式
yaw复制一个单词, 并带一个空格, 默认是后方空格, 如果后面没有则带前方, 可以用p粘贴
yia复制一个参数, 可以用p粘贴
yaa复制一个参数包含逗号和空格, 可以用p粘贴

切换标签页

命令效果
gt切换下一个标签页
gT切换上一个标签页

更多推荐

Vim使用学习以及ideaVim(持续补充)