19 vim编辑器

19 vim编辑器

一、杂项知识整理

1、vi +6 FILE:打开并且光标在第六行。

    vi +/pattern 打开文件后,光标处于第一个被pattern匹配到的行的行首

    vim + FILE 直接打开file,光标在最后一行

    vim -m file 只读打开文件

    ex file 或vim -e 直接进入扩展命令行模式

2、命令模式下:100iwang [ESC] 粘贴wang100次

    

二、命令详解及事例

1、三种主要模式:命令模式(默认):移动光标,剪切粘贴文本

    插入模式(编辑模式):修改文本

    扩展命令模式:保存,退出,替换等;

2、命令模式—》插入模式:

    i 在光标所在处输入

    I 在当前光标所在行的行首输入

    a 在光标所在处后面输入

    A 在当前光标所在行的行尾输入

    o 在当前光标所在行的下方打开一个新行

    O 在当前光标所在行的上方打开一个新行

3、扩展命令行模式:

    w 写磁盘文件

    wq 写入并退出

    x 写入并瑞出

    r FILENAME 读文件内容到当前文件中

    w FILENAMME 将当前文件内容写入另一个文件

    !COMMAND 直接执行命令

    r!COMMAND 将命令的结果读入vim文件中,追加的方式 

4、命令模式光标跳转

    h 左 l 右 j 下 k 上

    #COMMAND跳转由#指定的个数的字符

单词间跳转:w 下一个单词的词首

    e 当前或下一个单词的词尾

    b 当前或前一个单词的词首

    #COMMAND 由#指定一次跳转的单词数

当前页跳转:H 页首 M 页中间行 L 页底

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

    0 跳转至行首 $ 跳转至行尾

行间移动:G 最后一行 1G,gg第一行 

句间移动:) 下一句 (上一句 }下一段 { 上一段

翻屏操作:ctrl+f 向文件尾部翻一屏 ctrl+b 向文件首部翻一屏

    ctrl+d 向文件尾部翻半屏 ctrl+u 向文件首部翻半屏

字符编辑:x 删除光标处的字符 #x 删除光标处开始的#个字符

    xp 交换光标所在处的字符及其后面字符的位置 ~转换大小写

替换命令:r 替换光标所在处的字符 R 切换成REPLACE模式

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

    d$ 删除至行尾 d^删除到非空行首 d0 删除到行首 dw de db 删除一个单词

    #COMMAND 删除#个命令中的字符 dd 删除光标所在的行 D从光标位置一直删除到行尾,留空行,等同于d$

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

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

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

改变命令:c 修改后切换成插入模式,相当于删除之后切换成插入模式

5、扩展模式:地址定界:# 具体第#行

    #,# 起始行到结尾行   #。+#  .当前行  $最后一行  .,$-1 当前行到倒数第二行

    % 全文,相当于1,$   /pattern1/,/pattern2/从第一次被模式匹配到的行开始,一直到第二个被匹配到的行结束。

    w FILE 将范围内的行另存为指定文件中

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

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

    ?pattern 从当前光标所在处想文件首部查找

    查找结果之后:n 与命令同方向查看   N与命令反方向

查找替换:s/查找的内容/替换为的内容/修饰符   与sed的查找替换模式基本相同

撤销模式:u撤销最近的更改 #u撤销之前多次更改  U撤销光标所在行的所有更改

    ctrl r 撤销之前的撤销操作 .重复前一个操作  n.重复前一个操作n次

6、vim的寄存器:有26个命名寄存器和一个无命名寄存器,常存放不同的剪切板内容,可以不同会话间共享。

    用a,b,…z表示,用"寄存器 表示,放在数字和命令之间,如:3"tyy表示复制3行到t寄存器中。"tp 表示将t寄存器内容粘贴。

    未指定,将使用无名寄存器;

    有10个数字寄存器,用0,1,2…9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器 不能在不同会话间共享。

7、编辑二进制文件: 

    以二进制方式打开文件:

    vim -b BINARYFILE 

    扩展命令模式下,利用xxd命令转换为可读的十六进制:

    :%!xxd

    编辑二进制文件

    在扩展命令模式下,利用xxd命令转换回二进制

    :%!xxd -r

    保存退出

8、可视化模式:

    允许选择的文本块

    v面向字符

    V面向行

    ctrl v 面向块

可视化键可用于与移动键结合使用:

    w ) } 等

可视化的文字可以被复制删除变更过滤搜索替换等。

9、多文件模式:vim file1 file2 file3…

    :next 下一个

    :prev 前一个

    :last最后一个

    :wall 保存所有

    :qall 退出所有

    :wqall 保存退出所有

    :first 第一个

分割多个“窗口”

    vim -o|O file1 file2…

    -o 水平分割

    -O 垂直分割

    在窗口之间切换:ctrl+w 方向键

    单文件窗口分割:

        ctrl+w s 水平分割

        ctrl+w v 垂直分割

        ctrl+w q 取消相邻窗口

        ctrl+w o 取消全部窗口

        :wqall 退出

三、作业及练习

1、如何设置tab缩进为4个字符

vim家目录中或者是/etc下的.vimrc 添加一行set tabstop=4.

其他配置:

    set number 显示行号 set nonumber

    set showmatch 括号成对匹配 set sm   set nosm

    set ai  自动缩进  set noai

    set hlsearch 搜索高亮 set nohlsearch

    syntax on 语法高亮 syntax off

    set ic 忽略字符大小写 set noic

    fileformat=unix 文件格式启用为unix

    fileformat=dos 文件格式启用为dos模式

    set textwidth=65(vim only)设置文本宽度

    set wrapmargin=15 到头自动换行行宽

    set nowrap 取消自动换行

2、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log:地址定界编辑命令

:%s@/etc/sysconfig/init@/var/log@g

3、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号

:%s@^#[[:space:]]@ @g

附:vim快捷键示意图vim快捷键图解.png

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

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-10 10:22
下一篇 2016-08-10 10:22

相关推荐

  • 初来乍到

    坐上了去往北方的火车,我不知道自己为什么会颤抖,也许是耳朵里那首汪峰的《北京,北京》震撼到了我,接着满脑子便是灯红酒绿的大街道和浮华的高楼大厦,我幻想着有一天能在这样的大城市中闯出一片天。梦醒了 ! 30个小时的路程确实是让我满脑子都是未来的自己。 对于我这个从来没有见过世面的人来说,第一次来到北京这座一线大城市,内心充满着无比的欣喜和激动,但更多的还是那份…

    Linux干货 2018-03-26
  • 用户和组

    用户和组 touch /etc/nologin     系统做维护时不想普通用户登录,就可以创建这个文件,也可以在里面写一些提示。     维护完之后删除这个文件就可以自动恢复      touch /run/nolog…

    Linux干货 2016-08-03
  • 软件包管理

    一、软件管理程序rpm 简介:RPM是通过预编译并打包成为RPM文件格式后再加以安装的一种方式,并且还能够进行数据库的记载。 1、优点:     1、RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰;     2、RPM在被安装之前,会先检查系统的硬盘容量…

    Linux干货 2016-08-24
  • 堡垒机-麒麟堡垒机动态口令使用手册

      一.管理员部分 1.在其它-licenses菜单查看动态口令许可是否打开,如果未打开联系厂商重新生成许可   2.找厂商生成密钥文件,密钥文件中包含令牌种子,在其它–动态令牌菜单将密钥文件导入即可看到所有的令牌种子,每个令牌可以绑定给多个用户     3.令牌绑定可以在 资源管理–…

    安全运维 2016-05-29
  • Linux学习总结02—Linux的操作系统发展史(原创)

       我们都知道,在美国宾夕法尼亚大学,有那么一种计算机,叫ENIAC,这种机器耗电量是非常大,而且主机也是庞大,它诞生于1946年的2月14日的情人节,确实有纪念意义,就算是约炮也是拿着智能手机先摇一摇,好看就勾搭,不好看的就拉黑,这台计算机可并不是造福人类的,只是计算数据,我想,当时的情况是这样,在这台计算机没有出世之前,那帮工程师们…

    Linux干货 2016-10-29
  • linux文件系统挂载

    挂载mount 挂载:     将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为 卸载:     为解除此关联关系的过程 把设备关联挂载点:mount Point mount 卸载时:    &…

    Linux干货 2016-08-29