美文网首页Linux
Linux----vi/vim编辑器的使用

Linux----vi/vim编辑器的使用

作者: 不过意局bugyj | 来源:发表于2018-09-21 15:28 被阅读0次

介绍右上角的*号是用来标注我自己认为重要命令的!

Vi简介

  • vi是“visual interface”的简称。开发者为Bill Joy。https://en.wikipedia.org/wiki/Bill_Joy
  • vim(vi improve)由传统的vi发展而来。
  • vi是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序
  • vi可以执行输出、删除、查找、替换、块操作等众多文本操作 。
  • vi不是一个排版程序,它可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
  • vi是全屏幕文本编辑器,它没有菜单,只有命令。Vi的功能十分强大,但是命令繁多,不容易掌握

为何要学习使用Vi编辑器?

  • 所有的UNIX/Linux系统都内置vi,其他文本编辑器则未必
  • 用telnet和SSH远程管理Linux时,只能用vi
  • 服务器工作在运行级3(纯字符界面)时,只能用vi
  • Linux系统出现故障,无法使用图形界面时,只能用vi
  • 很多软件的编辑接口最终会调用vi(如后面的crontab、visudo等)
  • 当需要修改某些只读的系统文件(同时不改变该文件读写属性)时,需要使用vi
  • Vim有程序编辑能力,可以识别语法。是一个“程序开发工具”而不仅仅只是文字处理软件
  • 必要时采用vi

设置vi

在某些系统中,vi和vim可能不是一个程序,例如FC12!那么怎么设置vi就是调用vim呢?
我们可以运行这样的命令:
像在我的虚拟机上运行时

[hswbugyj@localhost temp]$ which vim
/usr/bin/vim
[hswbugyj@localhost temp]$ which vi
alias vi='vim'
    /usr/bin/vim

结果表明在我的centos7上的vi和vim是运行同一个程序!

[root@jiangjian ~]# which vi
/bin/vi
[root@jiangjian ~]# which vim
/usr/bin/vim

这个的结果表明的就是连个命令运行的就不是一个程序了!
可以编辑用户主目录下的一个隐藏文件.ashrc进行设置,

查看主目录下的所有文件需要root权限
vi /home/hswbugyj/.bashrc

在文件末尾加上:

alias vi='vim'

就是上面运行which vi显示的那样,修改后保存退出,source .bashrc刷新这个配置文件!然后再运行which vi就和我的一样了!

或者可以直接通过alias vi='vim'命令设置!


vi的使用步骤

  • $ vi test.c 进入命令模式 (默认模式,移动光标只能在该模式)
  • 按“ i” 键,进入插入模式,此时方可输入文本。
  • 输入结束后,按ESC键回到命令模式。
  • 随后有几种选择:
  • :q! 放弃编辑的内容并退出vi,强行退出。*
  • :wq 保存对文件的修改并退出vi,即“存盘退出”,可用‘:x’替代*
  • :w! 强行将修改存盘(哪怕是只读文件),在系统管理中有用,有些系统配置文件是只读的,如要修改只有如此。*
  • :w 保存对文件的修改但不离开vi,类似“保存”。:w filename表示“另存为filename”*
  • :q 离开vi,如文件被修改,则系统提示拒绝退出。*

注意:如果启动vi时没有指定文件名,在保存时必须在“:x”后空一格然后指定文件名,即“:x test.c”

由命令状态进入插入状态可按以下几个键:

  • a:在光标之后加入文字
  • i: 在光标之前加入文字
  • o: 在光标所在行的下一行增加一空行,并将光标置于该行的 行首,等待输入文本。*
  • O: 在光标上一行增加空行。*

在命令状态(又叫编辑状态)下的快捷键使用:

  • x 删除光标所在的字符
  • X 删除光标所在之前一字符
  • dd 删除光标所在行*
  • cc dd+插入*
  • yy 复制光标所在行*

在命令状态(又叫编辑状态)下的快捷键使用:

  • r 用跟在该指令后面的字符取代光标所在字符。(比如ra,则用a取代光标所在字符。)*
  • R 进入取代状态,直到按下ESC键为止。
  • D 以行为单位,删除光标后所有字符*
  • 3D表示删除光标所在行从光标后所有字符,还有光标所在行后两整行。
  • :n1,n2d :将n1行到n2行之间的内容删除
  • d3l:删除右边3个字符;

可视化“块”选择:

先把光标移到所需选取文本的最前面,在编辑模式下输入v,表示”可视模式”,再移到需选取模块的最后面,被选取文本呈反色显示,用y、d、n再进行处理。
V:行选择
Ctrl+v: 矩形块选择


在命令状态(又叫编辑状态)下的快捷键使用(移动):

  • h,j,k,l :左/下/上/右 (或用方向键); *
  • 0:行首;$:行尾;(Home/End键也可)
  • H,M,L:移至屏幕左上角、屏幕中间行、屏幕最底行。*
  • {,}:段首,段尾。
  • (,):句首,句尾。
  • G:移到文件最后一行
  • nG/1G/gg:移到第n行(配合:set nu)/第1行/第1行

d、y这一类指令在vi中有如下指令格式:

  • 操作指令+操作范围=命令
  • 操作指令就是d、y
  • 操作范围:
    e: 由光标所在位置至该字符串的最后一个字符。
    w: 由光标所在位置至下一个字符串的第一个字符。
    b: 由光标所在位置至前一个字符串的第一个字符。
    $: 由光标所在位置至该行的最后一个字符。
    0: 由光标所在位置至该行的第一个字符。
如:
  • dw : 删除光标所在单词,如光标在单词中间,则从光标所在位置删至词尾并连同空格。

ndw是什么效果? (删除n个单词)

  • db:删除光标前一个单词。
  • d$:删除从当前字符到行尾所有字符。
  • d0:删除从光标到行首的所有字符。

p 粘贴

  • 如何复制一行,如何移动一行

yy+p dd+p *

  • 在编辑状态,在指令前加入一个数字n,则该指令动作会重复执行n次。如在指令后按‘.’重复执行一次。(继续按‘.’,继续重复)。*

如何复制10行,如何移动10行
10yy+p 10dd+p

光标往下移10行用10j,往上移10行用10k

u 恢复最后一次指令执行前的结果,即“Undo”* *


字符串:在光标之后查找该字符串

  • ?字符串:在光标之前查找该字符串 *
  • n: 往下继续寻找下一个相同的字符串
  • N: 往上继续寻找下一个相同的字符串
查找并替换字符串:
  • :s/str1/str2/g 将所有str1替换为str2(g表示global,s表示substitute)

未指定范围则默认为当前

如:
  • :1,16s/str1/str2/g 将1到16行的替换。
  • : ., .+n/-n:当前行加n行/减n行。
  • :1,$s/str1/str2/gc 从第1到最后一行进行替换,替换前询问用户(confirm)

编辑多个文档

  • vi file1 file2
    当第一个文件编辑完后,利用“ :w” 指令将该文档在缓冲区存档,然后再利用“:n”指令加载另一个文档。(n表示next)

同时编辑两个文件,将其中一个文件的一行复制到另一个文件当中: vi file1 fiel2
yy
:n
p
:n
(有问题,系统显示:这已经是最后一个文档了!,要用:N切换到前一个,用:e filex指定编辑哪一个)


在编辑状态下的set命令:

  • :set cindent (设置c语言源程序缩进,nocindent反之。)
  • :set cindent shiftwidth=4 默认shiftwidth=8
  • :syntax on 语法高亮 (off为关闭)
  • :set nohlsearch(去掉查找文本时的高亮显示,hlsearch反之)
  • :set number(或:set nu,显示行号;:set nonumber反之)
  • :set autoindent (noautoindent)
  • :行号:就可以到那一行。
    也可以在~/.vimrc中设置,则一直有效

vi的其他操作

  • 在命令模式下输入:! ,后面跟命令名,可以暂时脱离vi,执行linux命令
  • 在命令模式下输入!!,可以将linux命令结果输入文件
  • :r 文件名a,可以将文件a内容读入当前文件
  • :n1, n2w 文件名a,可以将当前文件第n1到n2行写入文件a
  • :n1, n2w >>文件名a,追加写入

相关文章

  • Linux----vi/vim编辑器的使用

    介绍右上角的*号是用来标注我自己认为重要命令的! Vi简介 vi是“visual interface”的简称。开发...

  • pofile 格式

    vim 使用使用 VIM 编辑器编写 $vim podfile 创建 Podfile 文件并使用 VIM 编写 执...

  • FFmpeg 工程之路-基础开发概述

    章节 熟练使用 Vim 编辑器Vim 编辑器核心理念、使用窍门Vim 处理模式Vim 常用命令Vim 基础命令 C...

  • 实验五

    实验五 使用Vim编辑器对文本进行排版 实验目的 1.初步了解Vim编辑器的原理。 2.初步掌握Vim编辑器的使用...

  • Vim使用介绍

    要想使用Vim,首先要知道Vim是什么.Vim编辑器是所有Unix及Linux系统下标准的编辑器,在你使用linu...

  • Linux Day20:Vim

    Vim编辑器 vi的使用 鸟哥书籍:按键的说明、Vim的保存文件、恢复与打开时的警告信息 Vim编辑器:文本编辑器...

  • Linux指令全网最全5(vim编辑器)

    五.vim编辑器 1.vim简介 (在终端中使用尤为重要)vi和vim都是Linux中的编辑器,不同的是,vim比...

  • vim操作

    一、什么是 vim? Unix 系统都会内建 vi 文本编辑器,但目前我们使用比较多的是 vim 编辑器。vim是...

  • 【CLI】Vim和Emacs调研

    参考文章: Emacs和Vim:神的编辑器和编辑器之神 为什么这么多人喜欢使用Vim或Emacs? Vim和Ema...

  • Vim 配置 使用

    参考文档 vi/vim使用进阶vim编辑器技巧备忘Vim 的哲学(一) 将Vim改造为强大的IDE—Vim集成

网友评论

    本文标题:Linux----vi/vim编辑器的使用

    本文链接:https://www.haomeiwen.com/subject/yiganftx.html