`
hejianmingwshjmcj
  • 浏览: 12386 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。若其它的Linux机器里没有安装joe或pico,如果不会使用vi,那可能就真的没辄了。

          vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:
命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字母i或o或a,就可以进入vi的输入模式编辑文件。

输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。

末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。



    下面介绍vi常用的命令操作





进入输入模式命令

i               在光标 左侧输入正文 [常用]
a              在光标 右侧输入正文 [常用]
o              小写字符o, 在光标所在行的 下一行增添新行
O              大写字符O, 在光标所在行的 上一行增添新行
I               在光标 所在行的开头输入正文
A              在光标 所在行的末尾输入正文
上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段
正文,从而实现正文的替换。这些命令包括:
s                 用输入的正文替换光标所指向的字符 [常用]
ns              用输入的正文替换光标右侧 n 个字符
cw              用输入的正文替换光标右侧的字  [常用]
ncw            用输入的正文替换光标右侧的 n 个字
cb              用输入的正文替换光标左侧的字  [常用]
ncb            用输入的正文替换光标左侧的 n 个字
cd              用输入的正文替换光标的所在行 [常用]
ncd            用输入的正文替换光标下面的 n 行
c$              用输入的正文替换从光标开始到本行末尾的所有字符 [常用]

c0              用输入的正文替换从本行开头到光标的所有字符 [常用]

r            取代光标所在处的字符, 比如 c3 表示将光标所在处的字符替换为字符3 [常用] 

R           取代字符直至按【ESC】为止

按【Esc】键或组合键【ctrl】+[ 退出输入模式

末行模式


w              保存文件  [常用]

w file       将当前文件的内容保存到file文件

wq           保存文件并退出vi编辑器 [常用]

wq file    将 当前文件的内容写入 file 文件,并保持原有文件的内容不变,然后退出vi编辑器(假如当前文件内容有变动但未执行保存操作,那么执行该命令后不会退出vi编辑器)

r file        读取 file 文件的内容,插入当前光标所在行的后面
e file        关闭当前文件,并打开新文件 file (如果当前文件内容有变动但未保存,则该命令不会被执行) [常用]
f file        将当前文件重命名为 file [常用]
f               打印当前文件名称和状态,如文件的行数、光标所在的行号等

q              退出vi编辑器(如果当前文件有改动,则无法退出) [常用]

q!             强制退出vi编辑器(不保存修改) [常用]

#              将光标移到第#行 [常用]

PS:  关于行号使用的一些技巧:

一般用数值来指定绝对行号;字符“.”表示光标所在行的行号;字符“$”表示文件最后一行的行号,例如:

.+5                  将光标从当前行往下移动 5 行

$                     将光标移到文件的最后一行

1                     将光标移到文件的第一行

23w file         将文件的第23行写入file文件

3,5w file       将第 3 行至第 5 行写入 file 文件
1,.w file        将第 1 行至当前行写入 file 文件
.,$w file        将当前行至最后一行写入 file 文件
.,.+5w file    从当前行开始将 6 行内容写入 file 文件
1,$w file      将所有内容写入 file 文件,相当于 :w file 命令




移动光标的操作

【Home】          光标到行首
【End】              光标到行尾

【Page Up】       向上翻页

【Page Down】  向下翻页
【Delect】          删除光标位置的字符

【Ctrl】+ f          向前移动一页

【Ctrl】 + b        向后移动一页
   h            光标向左移动一个字符   [常用]  
  j            光标向下移动一个字符   [常用]

  k           光标向上移动一个字符   [常用] 

  l            光标向右移动一个字符  [常用] 

  数字0    把光标移到行尾  [ 常用]

  $           把光标移到行首  [ 常用]  

  G           把光标移到文件的末尾  [ 常用] 

  gg          把光标移到文件的开头   [ 常用] 

  w           把光标移到下一个单词的开头  [ 常用] 

  e           把光标移到当前或下一个单词的字尾  [ 常用] 

  b           把光标移到当前或下一个单词的开头  [ 常用] 

  ^           把光标移到该行的第一个非空白字符(tab,space)   [ 常用] 

  :#         把光标移到该行的第#个位置,例如:3, :10   [ 常用]

  )            光标移到句尾

  (            光标移到句首 

  注: 句子用半角句号后加一个空格(. )分割

  }           光标移到段落结尾

  {           光标移到段落开头

  注: 段落以空行分割

  nG        将光标定位到第n行的开头  [ 常用]

  n+        将光标下移n行  

n-          将光标上移n行

n$          将光标下移n行,并置于行尾

H           将光标置于当前屏幕的顶行

M          将光标置于当前屏幕的中间行

L            将光标置于屏幕的最后行 

~            改变当前字符的大小写   [ 常用]

>>          把当前行往右移动8个字符(相当于【tab】键)    [ 常用]

<<          把当前行往左移动8个字符(相当于【Shift】 +【tab】) [ 常用]

nz:        将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。


撤销操作

u            命令撤销最近一次的操作,可以使用多次来恢复原有的操作   [ 常用]
U           撤销所有操作
.             可以恢复对使用u命令的操作     [ 常用]



•复制/删除/粘贴操作


x           删除光标处的单个字符,并把删除后的字符放到缓存区( 实际上删除相当于剪切 )   [ 常用]

nx         删除三个字符。 例如, 3x删除光标处向右的三个字符  


"bnx     把删除的字符放到缓存区b

dw        删除当前字符到单词尾(包括空格)的所有字符   [ 常用]
dd        删除光标所在行 [常用]     [ 常用]

ndd      删除n行。 例如, 3dd从当前行开始向下删除三行文本  [ 常用]

"bndd   把删除的内容放到缓存区b

    PS: 如果要删除第m至第n行的内容,可以在末行模式中输入m,nd。比如3,5d表示删除第3~5行  [ 常用]



yy        复制当前光标所在行的内容到vi缓冲区    [ 常用] nyy      复制n行。例如:5yy就是从当前光标所处的行向下复制5行,把复制的内容放到vi缓存区 [常用]

"bnyy   将复制的内容放到缓存区b . 比如, b3yy 将三行数据存入缓存区b    [ 常用]


    PS: 如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区  [ 常用]
yw       复制当前光标所在位置到单词尾字符 (不包括空格)的内容到vi缓存区,相当于复制一个单词  [常用]  
nyw     复制n个单词例如:2yw就是复制两个单词

"bnyw  例如, 复制n个单词到缓存区b




y$        复制光标所在位置到行尾内容到缓存区   
y^        复制光标所在位置到行首内容到缓存区   

p          小写p, 将缓存区的内容粘贴到当前行的下方(与yy配合)  ,或插入到当前光标的下一个位置(与dw, x, y$ , y^ 配合)[常用]

P          大写P,与小写p的作用类似,但粘贴都方向相反


•查找与替换


        vi的查找与替换功能要再末行模式下完成。

/关键字                                               自上而下查找,比如/work,表示从当前光标处往下查找关键字为work的内容 [ 常用]

?关键字                                              自下而上查找 , 比如/work,表示从当前光标处往上查找关键字为work的内容  [ 常用]

PS: 当找到匹配项时,光标会定位在关键词都字符开头。要继续查找下一个匹配项,只需敲入字符n; 要往回查找,敲入N. 可以输入2n往下查找下下一个匹配项


s/old_string/new_string               用new_string替换光标所在行中首次出现的old_string

s/old_string/new_string/g           用new_string替换光标所在行中的所有old_string

m,ns/old_string/new_string/g   用new_string替换第m行至第n行的所有old_string [ 常用]

%s/old_string/new_string/g      用new_string替换所有的old_string   [ 常用]

/pattern_address/s/old_string/new_string/g    从当前光标处往下查找与pattern_address匹配的行,然后在该行上用new_string替换掉所有的old_string(实际上,这个命令是由 /pattern_address 和 /s/old_string/new_string/g组合而成)

g/pattern_address/s/old_string/new_string/g    找出所有与pattern_address匹配的行, 并用new_string替换掉每一行所有的old_string( 注意: 前后两个g的含义是不一样的,前面的g表示对整个文本搜索与pattern_address匹配的行, 后面的g表示针对每一个与pattern_address匹配的行都用new_string替换掉old_string)

     如果pattern_address和old_string一样,可以简写为g/pattern_address/s//new_string

     可以在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc   [ 常用] 

PS: 查找的一些技巧

/str/w file                                              正向搜索,并将第一个包含字符串 str 的行写入 file 文件
/str1/,/str2/w file                              正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写入 file 文件


•恢复文件


vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

O        只读打开,不改变文件内容
E         继续编辑文件,不恢复.swp文件保存的内容
R        将恢复上次编辑以后未保存文件内容
Q        退出vi
D        删除.swp文件


或者使用vi -r 文件名来恢复未保存的内容
分享到:
评论

相关推荐

    Linux vi编辑器使用方法

    ### Linux vi编辑器使用方法详解 #### 一、vi编辑器概述 vi编辑器作为所有Unix及Linux系统下的标准编辑工具,在系统管理、脚本编写等方面具有不可替代的地位。其功能强大,支持多种操作模式,使得用户能够在无需...

    VI编辑器使用方法的详细介绍

    ### VI编辑器使用方法的详细介绍 #### 一、VI编辑器模式概述 VI编辑器是Unix/Linux系统中非常重要的文本编辑工具之一。它具有三种基本的工作模式:命令模式(Command Mode)、插入模式(Insert Mode)以及最后一行模式...

    Linux系统基本操作命令与vi编辑器使用

    Linux系统基本操作命令与vi编辑器使用 ...Linux系统基本操作命令和vi编辑器使用是Linux系统中非常重要的两个方面,掌握这些基本操作命令和vi编辑器使用方法可以帮助我们更好地管理和维护Linux系统。

    Vi编辑器的使用方法

    Vi 编辑器的使用方法 Vi 编辑器是 Unix 及 Linux 系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。本文将详细介绍 Vi 编辑器的使用方法,包括基本概念、基本操作、命令行模式功能键等。 一、Vi 编辑器...

    Linux网络操作系统基础:Vi编辑器使用方法.pptx

    Linux操作系统中的Vi编辑器,全称为Visual Editor,是Unix和Linux环境下的标准文本编辑器,具有高度可移植性。它的衍生版本Vim(Vi IMproved)则在其基础上增加了许多高级功能,尤其受到程序员的青睐。Vim具备多种...

    Vi编辑器的基本使用方法

    ### Vi编辑器的基本使用方法 #### 一、Vi编辑器简介 Vi编辑器是Unix/Linux系统中最常用的文本编辑工具之一,其全称为Visual Editor。它简单高效,可以在没有图形界面的环境中快速进行文本编辑工作。Vi编辑器的核心...

    linux实验报告vi编辑器的使用.pdf

    本文将对Vi编辑器的使用进行详细的介绍,包括Vi编辑器的基本概念、使用方法和技巧,并通过实验步骤来加深对Vi编辑器的理解和掌握。 一、实验目的 学习使用Vi编辑器建立、编辑、显示及加工处理文本,并了解Vi编辑器...

    vi编辑器的使用方法

    "vi编辑器的使用方法" Vi 编辑器是 Unix 系统中的一个强大的文本编辑器,可以用其在 Unix 系统上查看和编辑文本文件,功能强大,用其查看和分析一些日志文件,非常好用。vi 编辑器是所有 Unix 及 Linux 系统下的...

    VI编辑器使用详解

    ### VI编辑器使用详解 ...以上就是VI编辑器的一些基本使用方法及相关命令介绍。熟练掌握这些命令对于高效使用VI编辑器至关重要。随着对VI编辑器的深入了解,用户还能发掘更多高级功能和技巧,进一步提升工作效率。

    VI编辑器的使用方法.txt

    ### VI编辑器的使用方法详解 #### 一、VI编辑器简介 VI(Visual Editor)是一种功能强大的文本编辑器,广泛应用于Unix/Linux操作系统中。它不仅适用于简单的文本编辑任务,还可以进行复杂的脚本编写和代码开发工作...

    Linux系统vi编辑器基本使用方法

    本文主要介绍了vi编辑器的基本使用方法、启动与退出、常用命令以及一些高级应用。 首先,vi编辑器有两大工作模式:编辑模式和指令模式。编辑模式下,用户可以直接输入和编辑文本,而指令模式则用于执行如保存、退出...

    Vi编辑器使用方法(超实用,一看就会,so easy !)

    学习Vi的基本命令并不复杂,而且容易上手,只要记住一些基础操作,你就可以开始使用Vi编辑器进行基本的文本编辑任务。 为了使用户更快地掌握Vi编辑器,这里提供一些实用技巧。例如,学习如何快速跳转和搜索文本。在...

    对linux的vi编辑器的认识

    "对linux的vi编辑器的认识" Vi 编辑器是 Linux 和 Unix 上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在 Linux 上也有很多图形界面的编辑器可用,但 VI 在系统...

    如何退出vi编辑器

    #### 退出vi编辑器的方法 退出vi编辑器时,需要确保当前编辑的内容已被保存或放弃,否则vi会阻止退出,避免数据丢失。以下是在不同情况下退出vi编辑器的常用命令: 1. **保存并退出** - 使用`:wq`命令可以保存...

    windows下vi编辑器

    **Windows下的VI编辑器** VI(Visual Editor)编辑器,源于UNIX系统,是Linux和类UNIX操作系统中的一个经典文本编辑工具。它以其高效、强大的功能和命令行操作方式深受程序员和系统管理员的喜爱。尽管VI主要是在...

    linux 下vi编辑器的常见用法.txt

    linux 下vi 编辑器用法,常见的几种用法,适合新手学习使用。

    linux vi编辑器使用大全

    下面将对 vi 编辑器的使用方法进行总结,包括一般模式、编辑模式和指令列模式下的操作命令。 一般模式 在 vi 编辑器中,用户可以使用多种命令来移动光标、搜索和替换文本、删除和复制文本等。下面是常用的命令: ...

    linux下vi编辑器入门

    本文将从基础知识开始,逐步介绍 vi 编辑器的使用方法和技巧,帮助读者快速掌握 vi 编辑器的使用。 vi 编辑器的基本功能 vi 编辑器是一个文本编辑器,而不是文字处理器,因此它不支持对文字格式的处理,也不能设置...

    VI编辑器常用命令用法大全

    VI 编辑器常用命令用法大全 VI 编辑器是一种功能强大的文本编辑器,广泛应用于 Unix 及其相似操作系统中。VI 编辑器提供了两种模式:指令模式和输入模式。在指令模式下,用户可以输入命令来控制编辑器,而在输入...

    vi编辑器使用

    ### VI编辑器使用详解 #### 一、VI编辑器简介 VI编辑器是Linux和Unix系统中最基本且高效的文本编辑工具之一。它采用字符模式工作,这意味着用户可以在没有图形用户界面(GUI)的情况下进行文本编辑任务。由于其轻量...

Global site tag (gtag.js) - Google Analytics