`

Linux文件编辑器 Vi(Vim)

 
阅读更多
1、关于文本编辑器;


文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的编辑器有vi、vim(vi的增强版本)和nano ... ... vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi(vim)最简单的用法,以让Linux入门级用户在最短的时间内学会使用它。

nano 工具和DOS操作系统下的edit操作相似,使用简单,我们不作介绍了,如果您有兴趣,不妨尝试一下;


2、vi 编辑器;


为什么要学会简单应用vi

vi 或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。当您没有安装X-windows桌面环境或桌面环境崩溃时,我们仍需要字符模式下的编辑器vi;

vi或vim 编辑器在创建和编辑简单文档最高效的工具;


3、vi 编辑器的使用方法;



3.1 如何调用vi ;

[root@localhost ~]# vi filename


3.2 vi 的三种命令模式;
Command(命令)模式,用于输入命令;
Insert(插入)模式,用于插入文本;
Visual(可视)模式,用于视化的的高亮并选定正文;


3.3 文件的保存和退出;

Command 模式是vi或vim的默认模式,如果我们处于其它命令模式时,要通过ESC键切换过来。
当我们按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令;

:w 保存;
:w filename 另存为filename;
:wq! 保存退出;
:wq! filename 注:以filename为文件名保存后退出;
:q! 不保存退出;(退出帮助窗口)

:x 应该是保存并退出 ,功能和:wq!相同


3.4 光标移动;

当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标;
j 向下移动一行;
k 向上移动一行;
h 向左移动一个字符;
l 向右移动一个字符;
ctrl b 向上移动一屏;
ctrl f 向下移动一屏;
向上箭头 向上移动;
向下箭头 向下移动;
向左箭头 向左移动;
向右箭头 向右移动;

我们编辑一个文件时,对于 j、k、l和h键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行。


3.5 插入模式(文本的插入);
i 在光标之前插入;
a 在光标之后插入;
I 在光标所在行的行首插入;
A 在光标所在行的行末插入;
o 在光标所在的行的上面插入一行;
O 在光标所在的行的下面插入一行;
s 删除光标后的一个字符,然后进入插入模式;
S 删除光标所在的行,然后进入插入模式;


3.6 文本内容的删除操作;
x 一个字符;
#x 删除几个字符,#表示数字,比如3x;
dw 删除一个单词;
#dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词;
dd 删除一行;
#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行;
d$ 删除光标到行尾的内容;
J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起;


3.7 恢复修改及恢复删除操作;
u 撤消修改或删除操作;

按ESC键返回Command(命令)模式,然后按u键来撤消删除以前的删除或修改;如果您想撤消多个以前的修改或删除操作,请按多按几次u。这和Word的撤消操作没有太大的区别;



3.8 可视模式;
在最新的Linux发行版本中,vi提供了可视模式,因为这个功能是vim才有的。如果您用的vi没有这个功能,就换成vim就有了。打开可视模式,按ESC键,然后按v就进入可视模式;

可视模式为我们提供了极为友好的选取文本范围,以高亮显示;在屏幕的最下方显示有;
- 可视 --

--VISUAL--

进入可视模式,我们就可以用前面所说的命令行模式中的光标移动指令,可以进行文本范围的选取。

选取文本范围有何用?

我们可以对某部份删除作业,按d键就删除了我们选中的内容。
选中内容后,我们按y就表示复制;按d表示删除;

值得一提是的删除的同时,也表示复制。我们返回到命令模式,然后移动光标到某个位置,然后按shift p键,就把刚才删除的内容贴上了。我们先在这里提一句,在后文,我们还得详细说说。

退出可视模式,还是用ESC键;


3.9 复制和粘帖的操作;


其实删除也带有剪切的意思,当我们删除文字时,可以把光标移动到某处,然后按shift p键就把内容贴在原处,然后再移动光标到某处,然后再按p或shift p又能贴上;


p 在光标之后粘帖;
shift p 在光标之前粘帖

来举一例:

比如我们想把一个文档的第三行复制下来,然后帖到第五行的后面,我们应该怎么做呢?

有两种方法;

第一种方法:

先把第三行删除,把光标移动到第三行处,然后用dd动作,接着再按一下shift p键。这样就把刚才删除的第三行帖在原处了。

接着我们再用k键移动光标到第五行,然后再按一下p键,这样就把第三行的内容又帖到第五行的后面了;


第二种方法;

进入可视模式,按ESC键,然后按v键。移动鼠标指针,选中第三行的内容,然后按y键复制;再移动指针到第五行,最后按p键;

所以复制和粘贴操作,是命令模式、插入模式及可视模式的综合运用;我们要学会各种模式之间的切换,要常用ESC键;更为重要的学会在命令模式下移动光标;


3.10 关于行号;


有时我们配置一个程序运行时,会出现配置文件X行出现错误 。这时我们要用到行号相关的操作;


为所有内容添加行号;


按ESC键,然后输入:


:set number

光标所处位置

在屏幕的右下角,有类似如下的;


57,8 27%

在这之中,57表示第57行,8表示第8个字符;


3.11 查找和替换功能;



3.11.1 查找;


首先,我们要进入ESC键,进入命令模式;我们输入/或?就进入查找模式了;


/SEARCH 注:正向查找,按n键把光标移动到下一个符合条件的地方;
?SEARCH 注:反向查找,按shift n 键,把光标移动到下一个符合条件的

举一例:比如我想在一个文件中找到swap单词,我应该如下做;

首先按ESC键,进入命令模式,然后输入;


/swap

?swap


3.11.2 替换;


按ESC键进入命令模式;


:s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示;
:%s /SEARCH/REPLACE 注:把文档中所有SEARCH替换成REPLACE;
:#,# s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;

注:在这之中,g表示全局查找;我们注意到,就是没有替换的地方,也会把SEARCH高亮显示;


举例说明:

比如我们有一篇文档要修改;

我们把光标所在的行,把所有单词the,替换成THE,应该是:


:s /the/THE/g

我们把整篇文档的所有的the都替换成THE,应该是:


:%s /the/THE

我们仅仅是把第1行到第10行中的the,替换成THE,应该是;


:1,10 s /the/THE/g


4、关于本文;


我写本文的目的是让新手在最短的时间内用vi或vim创建、编辑和修改文件,所以说这篇文档并不是大而全的vi手册。如果把vi所有的功能都说全了,至少得写一本千页的手册;本也没有涉及更为高级的vi用法。如果想了解的更多,请查找man和help;


5、后记;


到目前为止,关于目录和文件的操作,我写过有几篇了,从文件和目录的创建、删除、复制到属性操作,最后到文件修改等系列文档。这些文档都是有相关性的,如果把这些相关性的文档连起来,就是一个整体知识块。我们只有掌握了这些知识,才能实现文件系统的管理。

在以后我会写什么内容呢????可能会补充一下文件的查找,其实以前有类似文档,到时我总结一下,贴出来给大家看看就行了。

下一步是准备网络基础文档建设中,网络基础比较重要,这是我计划的下一个重点。。。。。。。。


6、参考文档;


man vi 和vi --help

转自:linuxSir.org

再加几个比较爽的快捷键:
再Insert下:
ctrl-p (n)虽然不象命令能补齐,但如果你前面的代码有的:如: int dkkiekkeidkkdk
然后在光标处输入d时按ctrl-p时就能补齐成:dkkiekkeidkkdk 如果前面代码有几个d开头的,多按几次就会出现你想要的.

Command(命令)模式,用于输入命令;

:!ls 显示当前目录下的目录and文件.
:r!ls 显示当前目录下的目录and文件. 送于缓存在vim里显示如上图.
凡是linux里的命令脚本vim命令模式下在命令前加上!或者r!就能执行了.


  Vim/Vi一直是UNIX/Linux系统上最流行的文本编辑器,从2001年接触UNIX至今,Vim/Vi始终是我修改系统文件、编写简单程序的首选编辑器,是居家旅行必备之工具。如何提升它的编写速度,本文着重介绍了一些使用技巧供大家参考。

  值得一提的是Vim是慈善软件(CharityWare),如有赞助或评比得奖,所得将全部救助乌干达孤儿,软件使用是免费的,欢迎手头有点闲钱的使用者捐款赞助,如果没银子也没关系,至少当有评比活动时(有奖金可拿的那种)。

  应用技巧一:快速注释

  1、连续行注释

  使用Vim/Vi编辑shell脚本,在进行调试的时候,需要进行多行的注释,每次都要先切换到插入模式,在行首输入注释符“#”,再退回命令模式,非常麻烦。其实如果要注释连续行,可在命令模式下执行,格式如下:

  :起始行,终止行s/要替换字符/替换为新字符/g

  如需注释第1行到第20行,可以执行:

  :1,20s/^/#/g

  其中“^”表示在行首插入,“#”为要插入的字符,“g”表示执行替换时不确认,若希望每行交互询问是否执行,可将“g”改为“c”。

  如果编辑PHP脚本,注释要稍微麻烦一点,如也要注释第1行到第20行,要执行:

  :1,20s/^/\/\//g

  PHP的注释符“//”要特殊处理,因为Vim/Vi替换命令格式中默认“/”为分隔符,这样就需要使用转义符“\”,表示“/”就要写成“\/”才可以,所以命令如上所示。强烈建议各位看官使用,省时省力省键盘还省手指头。


  2、非连续行注释

  如果注释非连续的多行,可以定义快捷键简化,格式为:

  :map 快捷键 执行命令

  如定义快捷键Ctrl P为在当前行行首添加“#”注释,可以执行:

  :map ^P I//

  “^P”为定义快捷键Ctrl P,要注意的是必须同时按“Ctrl v p”按出此“^P”方才有效,或先按“Ctrl v”再按 “Ctrl p”也可以;“I//”就是此快捷键要触发的动作,“I”为在光标所在行行首插入,“//”为要输入的字符,“”表示退回命令模式,“”要逐个字符键入,不可直接按键盘的“Esc”键。执行成功后,直接在任意需要注释的行上按“Ctrl P”就自动会在行首加上“//”号了非常方便。

  如果要取消此快捷键,只需输入命令:

  :unmap ^P

  我写程序或文档喜欢在末尾注释中写上自己的邮箱,每次录入十分麻烦,索性定义了一个快捷键,如下:

  :map ^M isam_helen@vip.163.com

  以后写完内容后,直接在注释中Ctrl M就录入了俺的邮箱了。

  应用技巧二:乱七八糟的技巧

  1、传说中的命令“ab”

  命令“ab”,同样可以解决上述输入邮箱的问题,因为我在Vim/Vi中定义了太多快捷键,如输入电子邮箱的、输入通信地址的、输入联系电话的、输入求偶标准的、输入PHPChina管理员三围的……后来自己都记不住了。之后一天深夜电闪雷鸣,我突然发现了这条命令——“ab”,苍天啊大地啊,我终于找到解决问题的方法了!oh yeah!

  原来输入经常用的信息可以如此简单,LOOK——

  :ab 替代符 原始信息

  示例如下:

  :ab sammail sam_helen@vip.163.com


  执行之后,在输入模式任何地方录入“sammail”,再敲任意字母符号或者回车空格,咔嚓一下,利马就变成“sam_helen@vip.163.com”,那真是相当的方便啊!

  2、原来可以双剑合一

  在Vim/Vi中有两个小技巧:

  No.1 可以直接在Vim/Vi中执行UNIX/Linux命令不需退出Vim/Vi

  有时编写一些系统脚本,需要了解系统信息,很多同学就退出Vim/Vi然后执行命令,获得信息后再进行编辑。其实大可不必,如想获得/tmp目录下内容,只需在Vim/Vi命令模式下直接执行:

  :!ls /etc

  查看完命令结果,直接回车,就可以继续编辑非常方便。

  在Vim/Vi中执行命令,格式就是这么简单:

  :!命令

  No.2 可以直接将其他文件内容导入当前编辑文件中

  格式:

  :r 文件名

  如,需要导入文件/etc/issue的内容,执行:

  :r /etc/issue

  两个非常非常easy的小伎俩,就在一个我非常郁闷的下午,狂敲键盘时一不小心没留神发现了这样一个小秘密——原来它们可以结合起来用!

  先举个例子,很多程序员喜欢写完程序后在注释中写入当前时间,我有个好办法即省事又快速还准确,只需要在命令模式下执行:

  :r !date

  当前时间就自动被导入了,任何命令的结果导入到当前编辑文件中,格式为:

  :r !命令

  3、助力编程的查询功能

  以前在Linux系统下写一些C语言程序,有时记性不好,忘记了语法格式,使用Vim/Vi编写时可直接查询。如写程序写到fork时,突然失忆了(失去了对这个东东的记忆),就可以直接把光标移动到fork上,按“K”(大写的K),直接就会跳到Linux程序员手册,看到fork的帮助,看完后回车继续编写。



  4、配置文件.vimrc

  前面提到的快捷键、ab命令等的应用,设置后只在当前编辑文件中有效,如果想让它永久生效需要编辑用户宿主目录下的.vimrc文件,如你是root用户,则编辑/root/.vimrc(此文件默认不存在)。

  写入你常用的设置命令即可,如:

  :set nu

  :map ^M isam_helen@vip.163.com

  :ab sammail limingkillyou@163.com

  ……
以后就永久生效了
分享到:
评论

相关推荐

    Linux文件编辑器命令详解

    Linux文件编辑器命令详解 Linux文件编辑器 Vi(Vim) 关键字: vim 1、关于文本编辑器; 文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的编辑器有vi、vim(vi的增强版本)和...

    Linux vi编辑器

    全面介绍VI,有实例做练习,快速学习Linux经典的VI编辑器

    学习vi和vim编辑器

     将近三十年的时间里,vi一直是unix与linux采用的标准编辑器,从1986年开始,《学习vi和vim编辑器(第7版)》一直是第一线的vi导引手册。但三十年来,unix已不再是三十年前的样子,这本书也不能一成不变。第7版的...

    Windows下的vi文本编辑器(vim)

    windows下的vi编辑器,不需要其他dll之类,单文件就可以在windows下面执行,喜欢在linux下用vi的有福了,这个是我找了很久才找到的,现在新版的vim在Windows下面都需要其它文件才能运行

    Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程

    ViVim编辑器使用《博雅运维Linux全套笔记》

    ViVim编辑器使用《博雅运维Linux全套笔记》,vim的使用技巧等等

    学习vi和vim编辑器_第7版_中文

    将近三十年的时间里,vi一直是Unix与Linux采用的标准编辑器,从1986年开始,《学习vi和Vim编辑器》一直是第一线的vi导引手册。但三十年来,Unix已不再是三十年前的样子,这本书也不能一成不变。第7版的《学习vi和Vim...

    学习VI和VIM编辑器第7版中文

    将近三十年的时间里,vi一直是Unix与Linux采用的标准编辑器,从1986年开始,《学习vi和Vim编辑器》一直是第一线的vi导引手册。但三十年来,Unix已不再是三十年前的样子,这本书也不能一成不变。第7版的《学习vi和Vim...

    学习VI和VIM编辑器第7版中文

    对于Linux操作系统中VI、VIM编辑器的应用,适用于新手

    vi及vim编辑器使用进阶

    自己在linux学习过程中的vi使用笔记,教你熟练使用vi及vim编辑器。 vi编辑器是所有Unix及Linux系统下标准的编辑器,美国加州大学伯克利分校的Bill Joy所创立[1] ,它的强大不逊色于任何最新的文本编辑器,这里只是...

    学习vi和vim编辑器_第7版_中文+英文_PDF

    《学习vi和Vim编辑器(中文版... vi或Vim,是使用Linux或Unix时的必要知识,无论使用哪种平台,《学习vi和Vim编辑器(中文版第7版)》都是基础中的基础。 《学习vi和Vim编辑器(中文版第7版)》由罗宾斯、汉娜和拉姆编著。

    Linux应用技术:Linux的vi编辑器.pptx

    vi(vim)最常用、功能最强大的全屏幕文本编辑器。 vim是vi的增强版 启动vi编辑器 使用vi(vim)命令 vi命令后指定文件名:#vi testfile1可以打开一个文件或创建一个新文件 VI编辑器 三种模式 命令模式:按ESC进入 ...

    linux的文本编辑器vim

    vim的常用操作,vim没有菜单,只有命令 插入模式 定位命令 4. 删除命令 5. 复制和剪切 6. 替代和取消 7.搜索与替换 6. 保存与退出 7. 导入命令执行结果. ‘:r ! 命令’ 导入文件。 ‘:r 文件’ 导入该文件到...

    详解Linux常用命令的用法(二)————文本编辑器命令vi/vim

    它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。 1、vi和vim的区别: 就是在进入一般命令模式后,当按下(i、I、o、O、a、A、r、R)等任何一个字母,之后...

    Linux基础命令和VIM文本编辑器的基本使用

    简单的Linux基本命令的应用和vim文本编辑器的基本使用。

    linux系统vim实验报告.doc

    关于文本编辑器 vim 的使用 【注】里面的内容和自己跟着敲敲,文件名字换成自己的,可以套用我的模板和前言结论,代码最好跟着敲敲,里面的操作步骤我也说的非常明白。 1.vi 的三种模式:编辑模式,命令模式,最后行...

    vi-vim编辑器使用

    vi-vim编辑器使用,初学者可以看看,很实用

    学习vi和vim编辑器第7版

    学习vi和vim编辑器第7版_中文版本,带目录,linux下学习编程开发的利器

    linux中的vi和vim编辑器操作方法

    主要介绍了linux中的vi和vim编辑器操作方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics