vim编辑器

  在linux系统中使用文本编辑器来编辑你的配置文件是一件很重要的事。vim是linux最常用的文本编辑器,具有以下优势:所有的linux都内置vi文本编辑器。很多软件都会主动调用vi,如crontab、visudo等.

所以我们必须学好vi,vim分为以下3种模式:

  一般模式:

用 vi打开一个文件时,一进入该文件就是一般模式了。在这个模式中, 你可以使用 上下
左右 按键来移动光标,您可以使用 删除字符 或 删除整行 来处理档案内容, 也可以使用
复制、贴上来处理您的文件数据。

  编辑模式:

在一般模式下输入o、i等进入编辑模式,在编辑模式下可以直接输入字符串对文件进行编辑。

  末行模式:

在一般模式当中,输入 : 或 / 或 ? 就可以将光标移动到最底下那一行,在这个模式当中,
可以提供您搜寻资料的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号 等等的动
作则是在此模式中达成的。

一般模式中的按键较多

翻屏操作:

Ctrl+f: 向文件尾部翻一屏;

Ctrl+b: 向文件首部翻一屏;

 

行首行尾跳转:

^: 跳转至行首的第一个非空白字符;

0: 跳转至行首;

$: 跳转至行尾;

 

行间移动:

#G:跳转至由#指定行;

G:最后一行;

1G, gg: 第一行;

 

vim的编辑命令:

字符编辑:

x: 删除光标处的字符;

#x: 删除光标处起始的#个字符;

 

删除命令:

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

d$:删除光标至行尾部分的内容;

d^:删除行首(非空格)至光标处的内容;

d0:删除行首至光标处的内容;

 

dd: 删除光标所在的行;

#dd:多行删除;

 

粘贴命令(p, put, paste):

p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面;

P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面;

 

复制命令(y, yank):

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

y$:复制光标处至行尾的内容;

y0:复制行首至光标处的内容;

y^:复制行首(非空格)至光标处的内容;

 

yy:复制行

#yy: 复制多行;

 

可视化模式:

v: 按字符选定

V:按行行定

可用于批量注释,部分行首加#

 

撤消此前的编辑:

u(undo):撤消此前的操作;

#u: 撤消指定次数的操作;

 

撤消此前的撤消:

Ctrl+r

 

重复前一个编辑操作:

.

末行模式操作:

:w  保存

:q  退出

:set nu 显示行号

:set nonu 不显示行号

/word   向下搜索字符 

?word   向上搜索字符

        n 下一个搜索结果     

        N 上一个搜索结果

#s/word1/word2/ 把某行的第一个搜到的word1替换成word2

#s/word1/word2/g 把某行全部搜索到的word1替换成word2

vi的功能太强大,目前只记住了很小一部分,之后的使用中应继续摸索。

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

(0)
zxhyzxhy
上一篇 2016-06-09 22:15
下一篇 2016-06-09 22:15

相关推荐

  • Bash基本特性之命令状态返回值和命令行展开

    Bash基本特性之命令状态返回值和命令行展开 Bash的工作特性 命令执行状态返回值 bash中一条命令的执行,会产生两种返回结果:命令结果及命令执行状态结果。一条命令成功执行,其执行状态返回值为0。如果未能成功执行,其返回值为1-255。 ~]# echo $? 用于查看命令执行状态返回值 引用命令的执行结果$(COMMAND…

    Linux干货 2016-11-06
  • awk的进阶

    前言 awk的中有很多的控制语句,awk也支持if语句,while语句,for语句等等编程逻辑充的控制语句及数组、函数。 awk的进阶无非就是多练。 1.控制语句 (1)if-else语句 语句格式: if(condition) {statments}    if  (条件) 条件为真 执行{statments} 只有一个语句可…

    Linux干货 2016-06-26
  • for,while,until简介

    Shell(以Bash为例)中的循环语句一般有for、while、until这几种,偶尔还有写错语法的时候,这里结合实例来自己总结一下。也为今后使用提供一个快捷的资料获取渠道。 一、for循环语句 实例1.1 最基本的for循环: (传统的形式,for var in …) 代码如下: #!/bin/bashfor x in one two three fou…

    Linux干货 2016-08-22
  • 使用httpd反向代理模块实现tomcat负载均衡集群(下)

    上一篇讲解了http使用mod_http和mod_ajp代理模块实现tomcat负载均衡,下面我们来讲解使用http的mod_jk实现taomcat的负载均衡集群: 注意:http的mod_jk是第三方扩展模块,在新http版本中以不支持,在httpd 1.3和2.0效果较好 6、使用mod_jk实现tomcat负载均衡集群 6.1安装mod_jk [roo…

    Linux干货 2015-07-21
  • Linux上文件管理命令、元素据及时间戳、bash的工作特性回显和命令展开、定义别名,命令引用。

    文件管理命令: mkdir 创建空目录 语法: mkdir [选项]…目录… 选项: -P:逐层创建目录。 -v:显示过程。 -m:直接给定权限。 注意:路径的基名为命令作用对象。基名路径必须存在。 示例 创建/tmp/x1/a/a1和/tmp/x1/b rmdir 移除空目录 语法 rmdir [选项]…目录&#8230…

    Linux干货 2017-12-10
  • 马哥教育网络班21期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel /home/tuser1; chmod -R gx=— /home/tuser1 [root@mag…

    Linux干货 2016-08-02