当前位置:网站首页>Vim使用学习以及ideaVim(持续补充)
Vim使用学习以及ideaVim(持续补充)
2022-07-16 11:54:00 【社畜阿藏405】
文章目录
Vim使用学习以及ideaVim
方向
| 命令 | 效果 |
|---|---|
| h | 左 |
| j | 上 |
| k | 下 |
| l | 右 |
如果光标无法连续移动的话进入终端执行命令
defaults write com.jetbrains.intellij ApplePressAndHoldEnabled -bool false然后重启idea
进入插入模式
| 命令 | 效果 |
|---|---|
| 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 | 在查询完之后退出高亮模式 |
以下十个符号是不能直接进行搜索的需要添加“\”进行转译
. * [ ] ^ % / ? ~ $
替换命令
| 命令 | 效果 |
|---|---|
| /[被替换字符串]/[替换字符串] | 替换光标所在行的第一个搜索到的被替换字符串,如果光标所在位置为第一个, 则被替换的是顺位第一个也就是, 光标所在位置起算的第二个 |
| /[被替换字符串]/[替换字符串]/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 | 切换上一个标签页 |
边栏推荐
猜你喜欢

Competition of "four clouds"

Introduction to leetcode special dynamic planning

An excellent graphical tool for information collection maltego

MYSQL的主主/主从复制/xtrabackup/binlog恢复数据库以及使用ansible的常见模块

From physics to AI and war database, the career choice of post-95 programmers

Stc8h development (XIV): I2C drive rx8025t high-precision real-time clock chip

糖尿病遗传风险检测挑战赛-Coggle 30 Days of ML
![[Huawei online battle] download and run Huawei's official unity example code, prompting authentication failure and returning error code 100114](/img/62/9918f8b916baf987f6a3f92da4eecc.png)
[Huawei online battle] download and run Huawei's official unity example code, prompting authentication failure and returning error code 100114
![[quick application] there are many words in the text component. How to solve the problem that the div style next to it will be stretched](/img/d2/d07736dab57ed8bba8751b17af7b13.png)
[quick application] there are many words in the text component. How to solve the problem that the div style next to it will be stretched
![[actual combat] 1382- Yiwen owns your puppeter crawler application](/img/27/9fa894ca227f16d1fe3a1a865ef7af.jpg)
[actual combat] 1382- Yiwen owns your puppeter crawler application
随机推荐
V831——条形码识别
How to design PCB chip heat dissipation pad?
四 通用目标之make modules的执行过程分析
如何在Kubernetes上搭建code-server 云IDE平台
Web性能测试工具之ab入门篇
ETCD数据库源码分析——etcdserver bootstrap去除v2store
错误:SLF4J: Class path contains multiple SLF4J bindings
微创脑科学上市破发:公司市值143亿港元 微创医疗是大股东
STC8H开发(十四): I2C驱动RX8025T高精度实时时钟芯片
一款优秀的信息搜集图形化工具Maltego
2022年全球职业教育行业发展报告
pytest+allure定制报告
Stc8h development (XIV): I2C drive rx8025t high-precision real-time clock chip
Postgresql源码(5)缓冲区管理
How to count the data in the game
C# 程序调试和异常处理(try catch)
初次上路如何提问 - 自学必备技能(附直播回放)
Chinese translation of zagayevsky's "try to praise this incomplete world"
From physics to AI and war database, the career choice of post-95 programmers
【AGD】应用下载直达高频问题合集
