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",再按"左右箭头"的方式在两个文件之间切换。

相关推荐
m0_748239332 分钟前
Linux下C++轻量级WebServer服务器 框架梳理
linux·服务器·c++
R-sz19 分钟前
解决k8s部署dashboard时一直处于Pending状态的问题
linux·容器·kubernetes
2301_815389371 小时前
【笔记】在虚拟机中通过apache2给一个主机上配置多个web服务器
linux·服务器·笔记
檀越剑指大厂1 小时前
【Linux系列】sed命令的深入解析:如何使用sed删除文件内容
linux·运维·服务器
~央千澈~2 小时前
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
docker·vim·镜像
不爱学英文的码字机器2 小时前
深入理解 Linux 文件时间戳:atime、mtime 和 ctime 的概念及应用
linux·运维·服务器
迷迭所归处3 小时前
Linux系统 —— 进程控制系列 - 进程的等待:wait 与 waitpid
linux·运维·服务器
周先森的怣忈3 小时前
RHCE(第二部分)-----第三章:shell条件测试
linux·rhce
AIGCnn3 小时前
jetson 无显示器配置WIFI
linux·jetson
yulingfeng593 小时前
Centos7 yum 报错“Could not resolve host: mirrorlist.centos.org; Unknown error“
linux·运维·centos