admin 管理员组文章数量: 1184232
Vim使用学习以及ideaVim
我的ideaVim配置
文章目录
- Vim使用学习以及ideaVim
- 方向
- nomral模式
- 进入插入模式
- 删除命令
- 粘贴命令
- 拷贝命令
- 替换命令
- 修改命令
- motion---表示操作范围的指令
- 文件信息
- 可视模式(visual)
- 搜索命令
- 替换命令
- 执行shell命令
- 文件另存为
- 合并文件
- 打开多个文件
- 视图
- 选择(需要在.ideavimrc文件中配置set argtextobj并:source ~/.ideavimrc)
- 环绕操作(需要使用[vim-surround](https://github/tpope/vim-surround)插件)
- 1. 新增环绕
- 2. 修改环绕
- 3. 删除环绕
- 切换标签页
方向
| 命令 | 效果 |
|---|---|
| h | 左 |
| j | 上 |
| k | 下 |
| l | 右 |
| L | 右标签页 |
| H | 左标签页 |
如果光标无法连续移动的话进入终端执行命令
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的基础上选中逗号和空格 (ideavim中暂时不生效) |
| daa | 删除这个参数包含逗号和空格 (ideavim中暂时不生效) |
| caw | 删除一个单词包含逗号和空格并进入插入模式 |
| cia | 删除这个参数并进入插入模式 |
| caa | 删除这个参数逗号和空格并且进入插入模式 (ideavim中暂时不生效) |
| yaw | 复制一个单词, 并带一个空格, 默认是后方空格, 如果后面没有则带前方, 可以用p粘贴 |
| yia | 复制一个参数, 可以用p粘贴 |
| yaa | 复制一个参数包含逗号和空格, 可以用p粘贴 (ideavim中暂时不生效) |
环绕操作(需要使用vim-surround插件)
1. 新增环绕
| 结束后的模式 | 目标范围 | 新增内容 | 原始文本 (ps: 黄色为高亮md格式编写====自行配置, 看不懂的话自行忽略) | 命令 | 更改效果 (ps: 如果你查看的文档出现\是转译符, 看不懂的话自行忽略) |
|---|---|---|---|---|---|
| 常规模式 | 单词 | 字符 | Hello world | ysiw* | Hello *world* |
| 常规模式 | 单词 | 标签 | Hello world | ysiwt | Hello <strong>world</strong> |
| 常规模式 | 单词 | 括号 | Hello world | ||
| 常规模式 | 行尾 | 括号 | Hello world, world | ys$) | Hello (world, world) |
| 常规模式 | 查找 | 标签 | Hello world | ysfot | Hell<em>o wo</em>rld |
| 插入模式 | 符号 | 快捷键: <ctrl-g>" | “” | ||
| 插入模式 | 符号 | Hello world | 快捷键: <ctrl-g>" | Hello “world” | |
| 插入模式 | 符号 | Hello world | 快捷键: <ctrl-g>S" | “” |
2. 修改环绕
| 结束后的模式 | 目标范围 | 替换内容 | 原始文本 (ps: 黄色为高亮md格式编写====自行配置, 看不懂的话自行忽略) | 命令 | 更改效果 (ps: 如果你查看的文档出现\是转译符, 看不懂的话自行忽略) |
|---|---|---|---|---|---|
| 常规模式 | 单词 | 引号 | Hello “world” | cs"’ | Hello ‘world’ |
| 常规模式 | 单词 | 标签 | Hello “world” | cs" | Hello <p>world</p> |
| 常规模式 | 单词 | 标签 | Hello <p>world</p> | cst | Hello <html>world</html> |
3. 删除环绕
| 结束后的模式 | 目标范围 | 删除内容 | 原始文本 (ps: 黄色为高亮md格式编写====自行配置, 看不懂的话自行忽略) | 命令 | 更改效果 (ps: 如果你查看的文档出现\是转译符, 看不懂的话自行忽略) |
|---|---|---|---|---|---|
| 常规模式 | 单词 | 字符 | Hello ‘world’ | ds’ | Hello world |
| 常规模式 | 单词 | 标签 | Hello “‘world’” | Ds’ds" | Hello world |
| 常规模式 | 单词 | 括号 | Hello <html>world</html> | Dst | Hello world |
切换标签页
| 命令 | 效果 |
|---|---|
| gt | 切换下一个标签页 |
| gT | 切换上一个标签页 |
版权声明:本文标题:Vim使用学习以及ideaVim(持续补充) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1716882323a698564.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论