当前位置:网站首页>VIM使用
VIM使用
2022-04-23 06:19:00 【qq1033930618】
VIM
一、VIM打开文件
vi 文件名 打开文件
vi 文件名 + 打开文件并定位到文件末尾
vi 文件名 + 行数 打开文件并定位到指定行
二、显示行号与高亮查找内容
sudo gedit /etc/vim/vimrc
末尾加入一行
set number
set hls
三、异常处理
vim编辑过程中终端生成文件
.文件名.swp
重新用vim打开会有提示
四、VIM三种模式
命令模式
打开文件即进入命令模式
定位 翻页 复制 粘贴 删除
末行模式
由命令模式下:进入
:w 保存
:q 退出
:wq 保存并退出
:x 保存并退出
:q! 不保存退出
Esc 退出至命令模式
编辑
由命令模式下i进入
Esc 退出至命令模式
五、重复命令
重复执行命令
数字 命令
六、移动命令
命令模式下移动
上、下、左、右
h 向左
j 向下
k 向上
l 向右
行内移动
w 向后移动一个单词
b 向前移动一个单词
0 行首
^ 行首 第一个不是空白字符的位置
$ 行尾
行数移动
gg 文件顶部
G 文件末尾
数字gg 移动到 数字 对应行数
数字G 移动到 数字 对应行数
:数字回车 移动到 数字 对应行数
屏幕移动
Ctrl + b | back | 向上翻页 |
Ctrl + f | forward | 向下翻页 |
H | Head | 屏幕顶部 |
M | Middle | 屏幕中间 |
L | Low | 屏幕底部 |
段落移动
寻找空行
| {
| 上一段 |
| } | 下一段 |
| % | 括号匹配及切换 |
标记
| mx | mark | 添加标记 x,x 是 a~z 或者 A~Z 之间的任意一个字母 |
| 'x | | 直接定位到标记 x 所在位置 |
* 添加了标记的 **行如果被删除**,**标记同时被删除**
* 如果 **在其他行添加了相同名称的标记**,**之前添加的标记也会被替换掉**
选中文本 可以与移动命令连用
Esc 返回命令模式
| v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
| V | 可视行模式 | 选中光标经过的完整行 |
| Ctrl + v | 可视块模式 | 垂直方向选中文本 |
七、编辑命令
撤销
| u | undo | 撤销上次命令 |
| CTRL + r | redo | 恢复撤销的命令 |
删除
| x | cut | 删除光标所在字符,或者选中文字 |
x可以删除选中内容 也可以和重复命令连用
| d(移动命令) | delete | 删除移动命令对应的内容 |
| dd | delete | 删除光标所在行,可以 ndd 复制多行 |
| D | delete | 删除至行尾 |
* dw 从光标位置删除到单词末尾
* d0 从光标位置删除到一行的起始位置
* d} 从光标位置删除到段落结尾
* ndd 从光标位置向下连续删除 n 行
* d代码行G 从光标所在行 删除到 指定代码行 之间的所有代码
* d'a 从光标所在行 删除到 标记a 之间的所有代码
复制
| y(移动命令) | copy | 复制 |
| yy | copy | 复制一行,可以 nyy 复制多行 |
| p | paste | 粘贴 |
**提示**
* 命令 `d`、`x` 类似于图形界面的 **剪切操作** —— `CTRL + X`
* 命令 `y` 类似于图形界面的 **复制操作** —— `CTRL + C`
* 命令 `p` 类似于图形界面的 **粘贴操作** —— `CTRL + V`
* `vi` 中的 **文本缓冲区同样只有一个**,如果后续做过 **复制、剪切** 操作,之前缓冲区中的内容会被替换
**注意**
* `vi` 中的 **文本缓冲区** 和系统的 **剪贴板** 不是同一个
* 所以在其他软件中使用 `CTRL + C` 复制的内容,不能在 `vi` 中通过 `P` 命令粘贴
* 可以在 **编辑模式(i)** 下使用 **鼠标右键粘贴**
八、替换命令
| r | replace | 替换当前字符 | 命令模式 |
| R | replace | 替换当前行光标后的字符 | 替换模式 |
九、缩排与重复执行
| >> | 向右增加缩进 |
| << | 向左减少缩进 |
| . | 重复上次命令 |
可视模式一次选中多行可以统一增加或减少缩进
* **缩排命令** 在开发程序时,**统一增加代码的缩进** 比较有用!
* 一次性 **在选中代码前增加 4 个空格**,就叫做 **增加缩进**
* 一次性 **在选中代码前删除 4 个空格**,就叫做 **减少缩进**
* 在 **可视模式** 下,缩排命令只需要使用 **一个** `>` 或者 `<`
十、查找内容
| /str回车 | 查找 str |
* 查找到指定内容之后,使用 `Next` 查找下一个出现的位置:
* `n`: 查找下一个
* `N`: 查找上一个
* 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可
| '*' | 向后查找当前光标所在单词 |
| '#' | 向前查找当前光标所在单词 |
十一、查找内容
文本替换
:%s/旧文本/新文本/g
选中替换
:s/旧文本/新文本/g
确认替换
:%s/旧文本/新文本/gc
对每个高亮进行选择
1. `y` - `yes` 替换
2. `n` - `no` 不替换
3. `a` - `all` 替换所有
4. `q` - `quit` 退出替换
5. `l` - `last` 最后一个,并把光标移动到行首
6. `^E` 向下滚屏
7. `^Y` 向上滚屏
十二、插入命令
几种不同方法进入insert模式
| i | insert | 在当前字符前插入文本 | 常用 |
| I | insert | 在行首插入文本 | 较常用 |
| a | append | 在当前字符后添加文本 | |
| A | append | 在行末添加文本 | 较常用 |
| o | | 在当前行后面插入一空行 | 常用 |
| O | | 在当前行前面插入一空行 | 常用 |
十三、编辑命令演练
与数字连用
连续输入数字x个重复内容
数字x + i + 重复内容 + Esc
1. 输入 `10`,表示要重复 10 次
2. 输入 `i` 进入 **编辑模式**
3. 输入 `*` 也就是重复的文字
4. 按下 `ESC` 返回到 **命令模式**,返回之后 `vi` 就会把第 `2、3` 两步的操作重复 `10` 次
利用 可视块 给多行代码增加注释
1. 移动到要添加注释的 **第 1 行代码**,按 `^` 来到行首
2. 按 `CTRL + v` 进入 **可视块** 模式
3. 使用 `j` 向下连续选中要添加的代码行
4. 输入 `I` 进入 **编辑模式**,并在 **行首插入**,注意:一定要使用 **I**
5. 输入 `# ` 也就是注释符号
6. 按下 `ESC` 返回到 **命令模式**,返回之后 `vi` 会在之前选中的每一行代码 **前** 插入 `# `
^ + CTRL v + 选中行 + I + '#'空格 + Esc
十四、末行命令扩展
| :e . | edit | 会打开内置的文件浏览器,浏览要当前目录下的文件 回车进入|
:e 文件名 切换文件 可以用Tab补全 但是必须文件已保存
| :n 文件名 | new | 新建文件 |
| :w 文件名 | write | 另存为,但是仍然编辑当前文件,并不会切换文件 |
分屏操作
| :sp [文件名] | split | 横向增加分屏 |
| :vsp [文件名] | vertical split | 纵向增加分屏 |
控制窗口
> 分屏窗口都是基于 `CTRL + W` 这个快捷键的,`w` 对应的英文单词是 `window`
| w | window | 切换到下一个窗口 |
| r | reverse | 互换窗口 |
| c | close | 关闭当前窗口,但是不能关闭最后一个窗口 |
| q | quit | 退出当前窗口,如果是最后一个窗口,则关闭 vi |
| o | other | 关闭其他窗口 |
| + | | 增加窗口高度 |
| - | | 减少窗口高度 |
| > | | 增加窗口宽度 |
| < | | 减少窗口宽度 |
| = | | 等分窗口大小 |
版权声明
本文为[qq1033930618]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_51326691/article/details/120394993
边栏推荐
- 社区版阿里MQ普通消息发送订阅Demo
- el-select 中v-model绑定值,数据回显只显示value,不显示label
- HQL语句的调优
- Jiangning hospital DMR system solution
- go iris框架实现多服务Demo:通过(监听8083端口的)服务1中的接口启动(监听8084端口的)服务2
- Solution of self Networking Wireless Communication intercom system in Beifeng oil and gas field
- null和undefined的区别
- 可视化之路(十二)Collection类详解
- Discussion on frame construction and technology selection of short video platform
- 免费开源智能充电桩物联网SAAS云平台
猜你喜欢
随机推荐
el-select 中v-model绑定值,数据回显只显示value,不显示label
字节跳动2020秋招编程题:根据工号快速找到自己的排名
PyTorch 14. Module class
城市应急管理|城市突发事故应急通信指挥调度系统
Intelligent communication solution of Hainan Phoenix Airport
el-date-picker中自定义快捷选项picker-options,动态设置禁用日期
Metro wireless intercom system
“泉”力以赴·同“州”共济|北峰人一直在行动
golang实现正则匹配:密码包含至少一位数字,字母和特殊字符,且长度8-16
关于短视频技术轮廓探讨
Discussion on the outline of short video technology
Intuitive understanding of torch nn. Unfold
Wireless communication system for large-scale sports events
自定义classloader并实现热部署-使用loadClass
Meishe helps Baidu "Duka editing" to make knowledge creation easier
PyTorch 17. GPU concurrency
可视化常见绘图(一)堆叠图
go iris框架实现多服务Demo:通过(监听8083端口的)服务1中的接口启动(监听8084端口的)服务2
el-table的数据更新后,页面中数据未更新this.$forceUpdate()无效果
可视化常见问题解决方案(八)数学公式