Linux vi/vim 常用命令

本文全面解析Linux下vi/vim编辑器的功能与使用技巧,涵盖基本操作、模式切换、文件编辑与保存、多文件及窗口管理等核心内容,助你提升文本编辑效率。

Linux vi/vim 常用命令大全

(一)vi/vim是什么?

Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本、C语言程序编辑等功能,可以作为程序编辑器。

(二)为什么要学习vi/vim?
首先所有的Linux发行版系统上都会默认内置vi编辑器,而不一定带有其他文本编辑器,非常通用;其次,很多软件的编辑接口都会默认调用vi;第三,vi具有程序编辑的能力;最后,vi程序简单,编辑速度相当快速。

(三)vi的三种模式及各个模式之间的转换关系

在这里插入图片描述
(四)一般模式常用操作

【h(或向左方向键)】 光标左移一个字符
【j(或向下方向键)】 光标下移一个字符
【k(或向上方向键)】 光标上移一个字符
【l(或向右方向键)】 光标右移一个字符

【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)

【[0]或[Home]】 光标移动到当前行的最前面
【[$]或[End]】 光标移动到当前行的末尾

【G】 光标移动到文件的最后一行(第一个字符处)
【nG】 n为数字(下同),移动到当前文件中第n行
【gg】 移动到文件的第一行,相当于"1G"
【n[Enter]】 光标向下移动n行

【/word】 在文件中查找内容为word的字符串(向下查找)
【?word】 在文件中查找内容为word的字符串(向上查找)
【[n]】 表示重复查找动作,即查找下一个
【[N]】 反向查找下一个

第n2行之间查找word1字符串,并将其替换成word2
【:1,s/word1/word2/g】从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2【:1,s/word1/word2/g】从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2【:1,s/word1/word2/gc】 功能同上,只不过每次替换时都会让用户确认

【x,X】 x为向后删除一个字符,相当于[Delete],X为向前删除一个字符,相当于[Backspace]
【dd】 删除光标所在的一整行
【ndd】 删除光标所在的向下n行

【yy】 复制光标所在的那一行
【nyy】 复制光标所在的向下n行
【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴

【u】 撤消上一个操作
【[Ctrl] + r】 多次撤消
【.】 这是小数点键,重复上一个操作

(五)一般模式切换到编辑模式的操作
1、进入插入模式(6个命令)
【i】 从目前光标所在处插入
【I】 从目前光标
【a】 从当前光标所在的下一个字符处开始插入
【A】 从光标所在行的最后一个字符处开始插入
【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

2、进入替换模式(2个命令)

【r】 只会替换光标所在的那一个字符一次
【R】 会一直替换光标所在字符,直到按下[ESC]键为止
【[ESC]】 退出编辑模式回到一般模式

(六)一般模式切换到命令行模式
【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开
【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
【:set nu】 显示行号
【:set nonu】 取消显示行号
【:w newfile】 另存为
【:set fileencoding】 查看当前文件编码格式
【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

(七)文件恢复模式
【[O]pen Read-Only】 以只读方式打开文件
【[E]dit anyway】 用正常方式打开文件,不会载入暂存文件内容
【[R]ecover】 加载暂存文件内容
【[D]elete it】 用正常方式打开文件并删除暂存文件
【[Q]uit】 按下q就离开vi,不进行其他操作
【[A]bort】 与quit功能类似

(八)块选择(一般模式下用)
【v,V】 v:将光标经过的地方反白选择;V:将光标经过的行反白选择
【[Ctrl] + v】 块选择,可用长方形的方式选择文本
【y】 将反白的地方复制到剪贴板
【d】 将反白的内容删除

(九)多文件编辑
【vim file1 file2】 同时打开两个文件
【:n】 编辑下一个文件
【:N】 编辑上一个文件
【:files】 列出当前用vim打开的所有文件

(十)多窗口功能
【:sp [filename]】 打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
【[Ctrl] + w + j】 光标移动到下方窗口
【[Ctrl] + w + k】 光标移动到上方窗口
【[Ctrl] + w + q】 离开当前窗口

(十一)vim配置文件
vim的配置文件为/etc/vimrc,但一般不建议直接修改这个文件,而是在用户根目录下创建一个新的隐藏文件:
vim ~/.vimrc
然后编辑这个文件,常用的配置如下:
bash
"双引号后面的内容为注释
set nu "显示行号
set hlsearch "查找的字符串反白显示
set backspace=2 "可随时用退格键进行删除
set autoindent "自动缩排
set ruler "在最下方一行显示状态
set showmode "在左下角显示模式
set bg=dark "显示不同的底色,还可以为light
syntax on "语法检验,颜色显示

(十二)Dos与Linux的断行字符(文件转化)
dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
-k:保留该文件原本的mtime时间格式
-n:保留原本旧文件,将转换后的内容输出到新文件

(十三)语系编码转化
iconv --list 列出iconv支持的语系编码
iconv -f 原本编码 -t 新编码 filename [-o new file]
-f:from,后接原本的编码格式
-t:to,后接新编码格式
-o file:可选参数,建立新文件

Linux 系统中,`vi` 或其增强版本 `vim` 是非常常用的文本编辑器。它们提供了强大的文本处理功能,并通过不同的模式来实现高效的编辑操作。以下是一些常用的 `vi/vim` 编辑器命令列表,按照不同的模式进行分类。 ### 一般模式(Normal Mode) 一般模式是 `vi/vim` 的默认模式,用于导航和执行命令。 | 命令 | 功能描述 | |------|----------| | `h` | 光标向左移动一个字符 | | `j` | 光标向下移动一行 | | `k` | 光标向上移动一行 | | `l` | 光标向右移动一个字符 | | `0` | 移动到当前行的行首 | | `$` | 移动到当前行的行尾 | | `G` | 移动到文件的最后一行 | | `gg` | 移动到文件的第一行 | | `dd` | 删除当前行 | | `dw` | 删除当前光标所在位置的单词 | | `x` | 删除当前光标所在位置的字符 | | `yy` | 复制当前行 | | `yw` | 复制当前光标所在位置的单词 | | `y$` | 复制从当前光标位置到行尾的内容 | | `p` | 在光标下方粘贴剪贴板内容 | | `P` | 在光标上方粘贴剪贴板内容 | | `u` | 撤销上一次操作 | | `Ctrl + r` | 重做上一次撤销的操作 | | `/关键字` | 向下搜索指定的关键字 | | `?关键字` | 向上搜索指定的关键字 | | `n` | 重复上一次搜索(与 `/` 或 `?` 配合使用) | | `N` | 反向重复上一次搜索(与 `/` 或 `?` 配合使用) | ### 插入模式(Insert Mode) 插入模式用于输入文本。可以通过以下命令从一般模式进入插入模式: | 命令 | 功能描述 | |------|----------| | `i` | 在当前光标前插入文本 | | `I` | 在当前行的行首插入文本 | | `a` | 在当前光标后插入文本 | | `A` | 在当前行的行尾插入文本 | | `o` | 在当前行下方插入新行并进入插入模式 | | `O` | 在当前行上方插入新行并进入插入模式 | ### 命令模式(Command Mode) 命令模式用于执行保存、退出、查找等操作。从一般模式输入 `:` 即可进入命令模式。 | 命令 | 功能描述 | |------|----------| | `:w` | 保存文件 | | `:q` | 退出编辑器 | | `:wq` | 保存并退出编辑器 | | `:q!` | 强制退出且不保存更改 | | `:w!` | 强制保存文件(当文件为只读时使用) | | `:e 文件名` | 打开指定文件进行编辑 | | `:set nu` | 显示行号 | | `:set nonu` | 取消显示行号 | | `:s/旧内容/新内容` | 替换当前行中第一个匹配的内容 | | `:s/旧内容/新内容/g` | 替换当前行中所有匹配的内容 | | `:%s/旧内容/新内容/g` | 替换整个文件中所有匹配的内容 | | `:help` | 显示帮助信息 | ### 可视模式(Visual Mode) 可视模式用于选择文本块,以便进行复制、删除等操作。 | 命令 | 功能描述 | |------|----------| | `v` | 进入可视模式(字符选择) | | `V` | 进入可视模式(行选择) | | `Ctrl + v` | 进入可视模式(块选择) | ### 扩展功能 `vim` 提供了一些额外的功能,如语法高亮、自动缩进等。可以通过以下命令启用这些功能: ```vim :syntax on " 启用语法高亮 :set autoindent " 启用自动缩进 :set tabstop=4 " 设置 Tab 键的宽度为 4 个空格 ``` ### 示例代码块 以下是一个简单的 `vim` 配置示例,可以将其添加到 `.vimrc` 文件中以自定义编辑器行为: ```vim " 启用语法高亮 syntax on " 显示行号 set number " 启用自动缩进 set autoindent " 设置 Tab 键的宽度为 4 个空格 set tabstop=4 " 启用高亮搜索 set hlsearch " 启用智能缩进 set smartindent ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值