linux文本编辑器,vim编辑器

定义:文本(纯文本信息,必须是不加任何修饰的文本信息)编辑器

文本编辑器种类:

                行文本编辑器 :sed

                全屏文本编辑器:nano 、vim

VI全称:visual interface ,vim为vi的增强版,为vi improve

vim(vi Improve)用法

              vim 选项 文件:打开的文件不存在,自动创建新文件,存在直接打开文件

vim文本编辑器三种模式(千万弄清三种模式哦,不要混乱):

                  命令模式:

                  输入模式:

                 扩展编辑模式:

                            系统内置的命令行接口                   

三种模式之间的转换:

        命令模式:默认模式

命令模式——>文输入模式

                       i:insert ,光标所在处向前输入

                       I:光标所在行的行首输入

                       a:append,光标所在处的后方转换为输入

                       A:光标所在行的行尾输入

                       o:在光标所在处下方直接打开一行,光标处于行首

                       O:光标坐在处的上方打开一个新行

                    

         从输入模式|扩展模式———>命令模式:按ESC模式

         从命令模式———>扩展模式:按:建

         小白们注意啦!:不能从插入模式直接到扩展命令模式

        文件锁定和解锁:ctrl+s和ctrl+q

  vim 打开文档

              + #:打开文件后,让光标处于第#行的行首

              +/pattern模式(正则表达式):打开文件后,直接让光标处于第一个匹配字符的行首

              +:将光标自动处于文件行尾

              -m:打开的文件只有读权限,不能进行编辑保存

              -b:二进制方式打开文件

              -d:打开多个文件

       六种模式举例:

              一、让光标处于第五行:

               1.png

          

             二、 将光标处于匹配模式的行:

              1.png

              linux文本编辑器,vim编辑器

               三、自动将光标处于行尾     

             linux文本编辑器,vim编辑器

             linux文本编辑器,vim编辑器

             四、打开的文件只有读权限,对其进行编辑将不能进行保存

              linux文本编辑器,vim编辑器

              linux文本编辑器,vim编辑器

              五、以二进制方式打开文件

             9.png

            六、打开多个文件(会标注两个文件不同的地方)

            linux文本编辑器,vim编辑器

           linux文本编辑器,vim编辑器

  vim关闭文档:

            扩展模式下:

                 :q退出,文件未做过任何操作

                 :q!不保存退出

                 :wq保存退出

                :x保存退出

                :w/路径   将文件保存到另外文件中

           命令模式下:

                 输入ZZ(两个大Z):保存退出

                 输入ZQ:不保存退出

vim扩展操作:

          w:将范围内的文本保存到指定的文件中

          r路径:将指定的文件中的文本读出并插入到指定位置

          ! 命令:跳出文件扩展模式,执行其他命令,命令结束按Enter回到编辑模式

          r!命令:将执行命令的结果写入文件中

   四种用法实例

         一、编辑/etc/issue文件,添加主机名和时间,和当前登录终端提示,并将其另存到/testdir/issue.bak中.

              注意:当用:w 将文件保存到另一个文件时,如果文件不存在会创建新文件,存在需要用w! 强制保存,并将原文件覆盖

           12.png

           linux文本编辑器,vim编辑器   

       二、将文件/etc/issue文件,添加到/testdir/fstab文件的第5行

            15.png

           14.png

      三、当正在编辑文件时,突然需要查看ip地址怎么办:

             15.png

      四:将/root下所有的文件列表添加到/testdir/f1 文件中

            打开f1在扩展模式下输入r!ls /root

            linux文本编辑器,vim编辑器

           linux文本编辑器,vim编辑器

命令模式下的光标跳转:

     字符间跳转

         h:左

         l:右

         j: 下

         k:上

        先输入数字n,在输入(h| l | j |k):实现光标向(左|右|下|上)跳转n个字符

  单词间跳转

       w:跳到下一个单词的词首

       b:当前或前一个单词的词首(当光标位于当前单词的词尾时会跳到当前单词的词首)

       e:当前或后一个单词的词尾

       先输入数字n,在输入(w| b| e):实现光标向(后|前|后)跳转n个单词

命令模式下翻屏:

          ctrl+f:向文件尾部翻一屏

          ctrl+b:向文件首部翻一屏

          ctrl+d:向文件尾部翻半屏

          ctrl+u:向文件首部翻半屏

          enter:一行一行的后翻

命令模式操作

  字符编辑:

        x:删除光标所在处的字符

        #x:删除光标所在处的启始#个字符

        xp:交换光标坐在处的字符,以及后面的字符的位置

        ~:大小写转换

   删除操作:

     d:删除命令,可结合光标跳转字符实现范围删除;

         d$:删除光标处到行尾的内容

         d^:删除光标的内容一直到行首

         dw:以单词为单位向后删除

         de:以单词为单位向后删除

         db:以单词为单位向前删除

      输入数字n,在输入(dw|de|db),分别为(向后|向后|向前)删除n个单词

         dd:删除整行

        3dd:删除光标所在的行起始的共3行;删除的内容会保留到缓冲区中,刚刚删除的内容可以黏贴

      黏贴命令:

          p:缓冲区中的内容如果为整行或多个,则粘贴在当前光标所在行的下方,否则粘贴在当前光标的后方

          P:缓冲区中的内容如果为整行或多个,则粘贴在当前光标所在行的上方,否则粘贴在当前光标的前方

    复制命令(yank):

          y:复制,工作行为相似与d命令

          yy复制整行

  改变命令(change ,c);

       与d模式相同,但是删除完之后将编辑模式转换成输入模式

       cc:删除光标所在处的行并转化成输入模式

命令模式操作文本:

       编辑模式下输入数字n—>i |a|o|I|A|O—>输入内容—>enter:会将输入的内容重复n次添加到文件中

       开始位置 —>命令(y[复制],d[删除],gU[大写],gu[变小写])—>结束位置

  

撤销操作(undo u

 u:撤销 此前操作

 #u:

 撤销此前的撤销:ctrl

重复执行 前一个编辑操作 .n.重复前面操作n次)

 

扩展模式

vim扩展操作:

w:将范围内的文本保存到指定的文件中

r路径:将指定的文件中的文本读出并插入到指定位置

! 命令:跳出文件扩展模式,执行其他命令,命令结束按Enter回到编辑模式

r!命令:将执行命令的结果写入文件中

四种用法实例

一、编辑/etc/issue文件,添加主机名和时间,和当前登录终端提示,并将其另存到/testdir/issue.bak中.

注意:当用:w 将文件保存到另一个文件时,如果文件不存在会创建新文件,存在需要用w! 强制保存,并将原文件覆盖

linux文本编辑器,vim编辑器

linux文本编辑器,vim编辑器

linux文本编辑器,vim编辑器

二、将文件/etc/issue文件,添加到/testdir/fstab文件的第5行

linux文本编辑器,vim编辑器

三、当正在编辑文件时,突然需要查看ip地址怎么办:

linux文本编辑器,vim编辑器

四:将/root下所有的文件列表添加到/testdir/f1 文件中

打开f1在扩展模式下输入r!ls /root

linux文本编辑器,vim编辑器

地址界定:

:start_pos,end_pos

n:特定的第n行

n,+m:指定行范围,从n行,到n+m行

.:代表当前行

$:表示最后一行

.,$-1:当前行到倒数第二行

/pattern/从光标所在位置第一次被模式所匹配到的行

/pat1/,/pat2/

从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束

n,/pat/

/pat/,$

使用方式:后跟一个编辑命令dy

w  file: 将范围内的行另存至指定文件中

r  file:在指定位置插入指定文件中的所有内容

 

查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

 

举例:查找/etc/fstab文件中含有UUID的行

     linux文本编辑器,vim编辑器linux文本编辑器,vim编辑器

扩展模式下查找替换:

         三种格式:s/查找内容/替换内容/修饰符、s@@@s###

     查找内容:可以使用pattern模式

     替换内容:不可以是用Pattern ,但是可以使用&\1,&引用前面查找的所有内容,\1后向引用。

         修饰符:i忽略大小写,g全局替换,默认情况下只替换行的第一个,c替换前出现提示信息

 

举例:

 

1、 复制/etc/profile/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符:

linux文本编辑器,vim编辑器

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#

  linux文本编辑器,vim编辑器

可视化模块

         v:面向字符,选中可以以字符为单位

V:面向行,也就是选中以行为单位

多文件模式

vim file1 file2 file3 …..

:next 下一个

: prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

: qall 退出所有

: wqall

多窗口

多文件分割

vim – o| – O FILE1 FILE2 …

– o: 水平分割

– O: 垂直分割

在窗口间切换: Ctrl+w, 再按箭头键(arrow)进行窗口切换

单文件窗口分割:

Ctrl+w,s: split, 水平分割

Ctrl+w,v: vertical, 垂直分割

ctrl+w,q:取消相邻窗口

ctrl+w,o:取消全部窗口

wqall 退出

定制vim

配置文件

全局: /etc/vimrc

个人: ~/. vimrc (家目录下无此文件需要自己填加)

扩展模式:当前vim进程有效

 (1) 行号

显示: set number, 简写为set nu

取消显示: set nonumber, 简写为set nonu

 (3) 自动缩进

启用: set ai

禁用: set noai

 (4) 高亮搜索

启用: set hlsearch

禁用: set nohlsearch

 (5) 语法高亮

启用: syntax on

禁用: syntax off

 (6) 忽略字符的大小写

启用: set ic

不忽略: set noic

 (7) 文件格式

启用: fileformat=unix

不忽略: fileformat=dos

 (8) 设置文本宽度

:set textwidth=65 (vim only)

:set wrapmargin=15

 

vim帮助手册:

man help

输入:vimtutor命令

扩展模式下输入:help

:help option- list

 :set or :set all

                  

                                   

                                       

                                       

                                 

                                          

                                          

                                         

                                          

                                 

原创文章,作者:wangnannan,如若转载,请注明出处:http://www.178linux.com/30468

(0)
上一篇 2016-08-10 13:58
下一篇 2016-08-10 13:58

相关推荐

  • 循环体

    for 变量名in 列表;do 循环体 done 执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 列表生成方式: (1) 直接给出列表 (2) 整数列表: (a) {start..end} (b) $(seq[start [step]] end) (3) 返回列表的命令  &nbsp…

    Linux干货 2016-08-21
  • 深入浅出Docker(一):Docker核心技术预览

    原文链接:http://www.infoq.com/cn/articles/docker-core-technology-preview/ 【编者按】Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上,基于Go语言开发并遵从Apache2.0协议开源。Docker提供了一种在安全、可重复的环境中自…

    2015-04-10
  • linux基本命令的使用

      1>    查看当前终端名:tty 或who am i       查看当前所有登录的终端信息:who       查看当前所有登录的终端的详细信息 w 2> 编辑器    …

    2017-07-15
  • 搭建最基础的DNS服务

    搭建一个简单的DNS为了更方便和清晰的了解DNS的作用,通过搭建一个简单的DNS服务来学习。 在搭建之前,先简单了解一下DNS的工作原理 客户端把访问的域名传递给DNS服务器a,如果有记录,则将IP传递给客户端 DNS服务器a没有记录,则以递归方式访问其他服务器。首先访问根域 根域将匹配的一级域名DNS服务器b地址传递给DNS服务器a DNS服务器a再去访问…

    Linux干货 2017-07-26
  • 26期全程班-第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit :%s@^\([[:space:]]\+\)@#\1@g 2…

    Linux干货 2017-03-07
  • 进程管理(二)之计划任务

    进程管理(二)之计划任务   一、计划任务: 1、未来的某时间点执行一次任务: (1)at:跟一个时间点,到点了自动运行指定的任务 (2)batch:系统自行选择空闲时间去执行此处指定的任务 2、周期性运行某任务:cron 二、at命令: 1、at命令:at [option] TIME 注:当输入完成后,使用Ctrl+d结束,不能使用Ctrl+c …

    Linux干货 2016-09-10