vi | vim基本使用

vim三模式:① 输入模式 ②命令模式 ③末行模式(编辑模式)

vim四模式:① 输入模式 ②命令模式 ③末行模式(编辑模式) ④V模式

一、命令模式进入输入模式方法

二、命令模式基础操作:

1. 移动光标

1)光标移动:h j k l(备用方向键)

左 下 上

2)移动到文件 gg

移动到文件 G shift+g

  1. 移动到行 ^

移动到行 $

  1. 移动到指定行 :n 移动到第n行

2. 删除 ( 剪切 )复制

|--------------------|----------------|------------------------------|
| 1)删除单个字母 | x | 多个nx (一般不用) |
| 2)删除单行(剪切) | dd | 多行ndd :n1, n2d 指定范围行 |
| 3)粘贴 到光标 | 小p | 复制 单行 yy |
| 4)粘贴 到光标 | 大P shift+p | 复制n行 nyy |
| 5)从光标所在行删除到文件 | dG d$ | |
| 从光标所在行删除到文件 | d^ | |

3. 撤销 u U一次性 反撤销ctrl+r

4. 替换 r 替换光标所在单个字符

R 从光标所在开始替换, esc 结束

" r "键替换单一字符 , 实际使用时 , 比进入输入模式删除 x 再修改

三、末行模式(编辑模式)基础操作:

1.保存退出方式

:w保存不退出

先输入 :w (新文件名)另存为新文件 再 :wq 保存退出

:q 不退出·

:wq 保存退出

:q 强制不保存退出,用于修改文件之后,不保存数据退出

:wq 强制保存退出, 对文件没有写权限的时候,强制写入数

2.常用显示行号****set nu

set nu手工建立vim配置文件 放在 .vimrc 可多文件次使用

vim 支持更多的设置参数 , " :set all "进行查看

补充:Windows 下回车符在 Linux 中是用"^M** "符号显示,而不是**"** ** "符。这样会导致 Windows下编辑的程序脚本,无法在 Linux 中执行。这时可以通过命令"dos2unix",把 Windows 格式转为 Linux格式,当然反过来"unix2dos"命令就是把 Linux 格式转为 Windows 格式。这两个命令默认没有安装,需要手工安装才能使用。

3. 查找 / 查找内容 从光标所在行向下查找 按n 是下一个

\ 查找内容 上

取消高亮 : noh或者 / 输入一个搜不到的

4. 替换

:1,10s /old/new/g 替换 1 到 10 行的所有 old 为 new

:%s /old/new/g 替换整个文件的 old 为 new(建议手工替换)

:1,10s/^/#/g 替换 1 10 行打备注

:1,10s/^#//g 取消行首注释

而在 C 语言,PHP 语言等大多数语言中,是使用"//"开头作为注释的,我们当然用 vim 来写这些程序语言脚本,批量 入**"** // "注释 :1,10s/^ /\/\ //g1 到 10行,

取消 1 到 10 行行首的// :1,10s/^ \/\/ //g

5. :ab 源字符 替换字符

需频繁输入某个长字符串 ( 比如邮箱 ), 使用字符串替换 , 放在 .vimrc 可多文件使用

:ab mymail 45731230@163.com 当碰到"mymail"时,转变为邮箱

当下次输入源字符 敲空格 就变换成替换字符

6. 导入其他文件 :r 文件名 把文件内容导入所在光标位置

不退出查看命令 :! 命令 在 vim 中执行系统命令 :r date! 导入时间(常用)

多文件打开(参考另外文件)

​​​​​​​

四、vim多文件小技巧:

vim -o 文件 1 文件 2 上下 分屏

通过先按"ctrl+w",再按"上下箭头"的方式在两个文件之间切换。

vim -O 文件 1 文件 2 左右分屏

通过先按"ctrl+w",再按"左右箭头"的方式在两个文件之间切换。

相关推荐
Darkwanderor1 小时前
对Linux的进程控制的研究
linux·运维·c++
bksczm4 小时前
linux之线程概念和控制
linux·开发语言·c++
爱网络爱Linux4 小时前
Linux proc 目录安全加固
linux·运维·rhce·rhca·红帽认证·proc 目录安全加固
hehelm4 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip
MindUp4 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
ICECREAM5 小时前
环形队列设计——基于共享内存的高效进程间通信
linux
pt10435 小时前
思科网络自动化-API常用数据编码格式(JSON/XML/YAML)课程与实践
linux·服务器·网络
kdxiaojie5 小时前
Linux 驱动研究 —— I2C (5)
linux·运维·笔记·学习
会周易的程序员5 小时前
从零构建多核CPU负载自适应控制系统
linux·c++·笔记·物联网·测试工具
ZXXstarstar6 小时前
2026年电池安全使用年限的量化决策:什么时间到期最需要替换?
linux·运维·服务器·电池