Vi 和 Vim 编辑器详细使用方法

学习linux的一项必会技能,熟练使用vi/vim编辑器那便最重要的了。不过一堆操作看的也是太头疼了,以下整理了些常用到的命令。末尾福利!


工作模式

vi编辑界面有三种不同的工作模式,分别为命令模式、输入模式、和末行模式,不同的模式对文件进行的操作也不同。

模式 判断方法 可进行的操作
命令模式 启动后默认进入命令模式 光标移动、复制、粘贴、删除、字符串查找等
输入模式 最后一行有"--INSERT--"状态提示 录入文件内容
末行模式 最后一行有":"提示符 保存、退出、查找、替换等
  • vi/vim 工作模式

这张图说明了三种模式之间的切换方式。


命令模式中的基本操作

  • 模式切换
操作类型 操作键 功能
进入输入模式 a 光标位置之后插入内容
^ A 光标所在行末尾插入内容
^ i 光标位置之前插入内容
^ I 光标所在行开头插入内容
^ o 光标所在行下面插入新行
^ O 光标所在行上面插入新行
退出输入模式 Esc 退出输入模式,返回命令模式
  • 光标移动
操作类型 操作键 功能
方向移动 ↑、↓、←、→ 上、下、左、右
翻页 Page Down或Ctrl+F 向下翻动一整页内容
^ Page Up或Ctrl+ B 向上翻动一整页内容
行内快速跳转 Home键或 "^" 、数字 "0" 跳转至行首
^ End键或 "$" 键 跳转到行尾
行间快速跳转 1G或者gg 跳转到文件的首行
^ G 跳转到文件的末尾行
^ #G 跳转到文件中的第#行
行号显示 :set nu 在编辑器中显示行号
^ :set nonu 取消编辑器中的行号显示
  • 复制、粘贴、删除
操作类型 操作键 功能
删除 x或Del 删除光标处的单个字符
^ dd 删除当前光标所在行
^ #dd 删除从光标所在行开始的#行内容
^ d^ 删除当前光标之前到行首的所有字符
^ d$ 删除当前光标处到行尾的所有字符
复制 yy 复制当前行整行的内容到剪贴板
^ #yy 复制从光标所在行开始的#行内容
粘贴 p 将缓冲区中的内容粘贴到光标位置处之后
^ P 粘贴到光标位置处之前
  • 文件内容查找
操作键 功能
/word 从上而下在文件中查找字符串"word"
?word 从下而上在文件中查找字符串"word"
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
  • 撤销编辑及保存退出
操作键 功能
u 按次取消最近的一次操作;重复u键,恢复多步操作
U 用于取消对当前行所做的所有编辑
ZZ 保存当前的文件内容并退出vi编辑器

末行模式中的基本操作

  • 保存文件及退出 vi 编辑器
功能 命令 备注
保存文件 :w 保存修改的内容
^ :w /root/newfile 另存为其它文件
退出 :q 未修改退出
^ :q! 放弃对文件内容的修改,并退出
保存文件退出 :wq 保存修改的内容并退出
  • 打开新文件或读入其他文件内容
命令 功能
:e ~/install.log 打开新的文件进行编辑
:r /etc/filesystems 在当前文件中读入其他文件内容
  • 文件内容替换
命令 功能
:s /old/new 将当前行中查找到的第一个字符串 "old" 替换为 "new"
:s /old/new/g 将当前行中查找到的所有字符串 "old" 替换为 "new"
:#,# s/old/new/g 在行号 "#,#" 范围内替换所有的字符串 "old" 为 "new"
:% s/old/new/g 在整个文件范围内替换所有的字符串 "old" 为 "new"
:s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

vi/vim 键盘图

附上一张中文版的 vi/vim 键盘图。


参考说明

Linux vi/vim | 菜鸟教程

菜鸟教程是一个很不错的学习网站,在学习Linux的过程中,给过我不少帮助。

原文地址:https://www.cnblogs.com/llife/p/11351042.html

时间: 2024-08-02 03:45:56

Vi 和 Vim 编辑器详细使用方法的相关文章

vim编辑器详细使用方法

vi编辑器:全屏的文本编辑器    vi:Visual Interface,可视化界面: vim: vi iMproved,相当于vi的升级版工具: vim相对于vi的新特性:语法着色显示.更多的命令.历史记录: vi/vim:模式化文本编辑器        模式有以下几种:            编辑模式(命令模式),默认工作模式:            插入模式(输入模式),文本信息的自由编辑:在左下角有"Insert"标记:            ex模式(末行模式),对于编辑器

学习vi和vim编辑器(11):高级编辑方法(2)

本章学习在vi编辑器中如何保存命令. 保存命令: vi和ex中提供了许多方法来保存一长串命令序列,这样当调用已保存的序列时,只需要输入几个字符即可. 单词缩写: 可以定义缩写,让vi在处于插入模式时替你自动将输入展开成原文.定义缩写的命令为:"  ab abbr phrase ",其中abbr就是给phrase指定的缩写.注意,在插入模式中,只有将缩写当成单个单词输入时,缩写才会被展开,单词内的abbr不会被展开.如下图所示,将"vi"定义为"visual

学习vi和vim编辑器(16):vim的多窗口功能(1)

vim默认是在一个窗口中编辑所有文件,在文件间移动或者移动到文件的不同部分时只显示一个缓冲区.但vim也提供了多窗口编辑功能,可以简化复合的编辑任务.这篇文章将学习如何在一个运行的vim进程里使用多窗口,包括多窗口编辑工作的初始化与启动,在窗口间移动光标,在显示区中移动窗口等. 启动多窗口编辑: 可以在打开vim时启动多窗口编辑,也可以在编辑会话中分割窗口. 从命令行(shell)启动多窗口: 默认情况下,vim为一个会话只打开一个窗口,即使打开时已经指定多个文件.如果想从命令行中打开多个窗口,

学习vi和vim编辑器(15):vim对vi的主要改进

vim对vi做了大量改进,本章将讨论在vim中添加的主要功能:包括内置帮助功能.启动与初始化选项.新的移动命令.扩展的正则表达式.扩展的撤销.自定义可执行文件等. 内置帮助功能: vim的说明文档超过10万行,几乎所有的说明都可以通过vim内置的帮助工具取得,使用它最简单的形式就是调用" :help "命令.使用内置的帮助功能需要了解vi的导航技巧,知道如何在标签间前进与后退.当光标处于某个标签上时,按下" CTRL+] "前往该标签,按下" CTRL+T

学习vi和vim编辑器(9):全局替换(2)

上一篇文章已经学习了如何通过vi编辑器中" :s "命令进行全局替换,而且可以在替换命令中使用正则表达式以进行强大的模式匹配.这一篇文章将学习模式匹配的更多范例,以进一步熟悉正则表达式. 模式匹配的范例: (1)匹配一个完整的单词:如下图所示,如果需要将文本里所有的child单词替换成为children,可能最先想到的就是下图所示的替换命令: 但是这个命令会把childrendish,Fabrichild这两个单词中的child都做替换,这不是我们想要的.替换的关键就是child要是一

学习vi和vim编辑器(8):全局替换(1)

本章学习vi编辑器中的全局替换命令.通过全局替换命令,可以自动替换文件中所有出现过的某个单词.全局替换一般会用到两个ex命令:":g"(global),":s"(substitute). 替换命令: 替换命令的语法如下: " :s/old/new/ ",该命令会将当前这一行中第一个出现的old模式替换为new.其中斜线用来分隔命令的各部分(如果斜线位于该命令的最后一个字符,则该斜线可以省略). " :s/old/new/g "

学习vi和vim编辑器(13):vi同类品的功能总览

本章将学习vi同类品提供的相关功能. 它们都是我兄弟: 有许多可以自由取得的vi编辑器同类品.<vi和vim编辑器>重点介绍了vim编辑器,也简要地介绍了另外三种常用的同类品:nvi,elvis,vile.这些同类品都提供了vi之外的许多扩展功能,尽管方式可能不同,但这些同类品通常会提供相同的扩展功能.本篇文章将总体介绍这些同类品提供的扩展功能. 多窗口编辑:可以将屏幕分割成多个"窗口",从而在每个窗口编辑不同的文件,或者观察同一文件的不同部分.这使得同时在多个文件中工作更

vi和vim编辑器中上下左右变成了ABCD

[问题] 一次在使用普通用户在redhat中使用vi和vim编辑器时,发现在vi和vim编辑器中:在命令行模式下能够正常使用上下左右键,但是在非命令行模式下不能正常使用上下左右方向键 [网上解决办法] 1)在/etc/vim/vimrc 中加入以下内容: set nocompatible  //支持方向键 set backspace=2   //支持backsapce前删键 2)在vi和vim的命令行模式下输入:set nocompatible [最后没办法的办法(不是最好)] 由于当前是普通用

学习vi和vim编辑器(10):高级编辑方法(1)

从本章开始将介绍一些vi和ex编辑器的高级功能.这一篇文章主要介绍如何自定义编辑环境,如何在vi中执行UNIX命令以及如何通过UNIX命令在vi中过滤文本. 自定义vi: vi编辑器中有许多可以设置的选项,这些选项将影响vi编辑器的运作. 可以使用ex命令 " :set "在vi中改变选项.而且,只要vi被打开,就会读取位于你的主目录的" .exrc "文件,以取得vi的相关设置.在这个文件中使用" :set "命令,就可以改变vi的运作方式.除