vim简单总结

编辑器种类

常用的文本编辑器有:

  • 行编辑器,如sed,awk,cut等

  • 全屏编辑器,如vi,vim(vi增强版),nano等

vim的模式

  • 命令模式:使用vim filename打开文件后,进入的第一个模式。

    • 直接使用键盘操作文本的编辑

  • 插入模式:INSERT模式

    • 进入:i,从当前光标处开始

    • 进入:I,从当前行行首开始

  • 末行模式:vim内置命令接口。

    • 以:开头命令

  • 替换模式:replace。会将光标所在的地方,替换为输入的内容。

    • 进入:在命令模式下,输入R命令,进入替换模式。

    • 输入r命令,则只能替换一次

  • 可视化模式:代替鼠标进行选定。搭配命令模式的一个命令作为结尾

    • v 字符为单位

    • V 行为单位

    • c+v 面向块

    • visual模式下,可配合w,),}等使用

  • 多窗口模式

  • 锁屏

    • ctrl+s,vim锁屏

    • 锁屏后,屏幕中,vim显示的内容,无论输入什么,显示的内容都不会变化。

    • 锁屏后的所有输入,都会被记录,并且在解锁后,执行。同未锁屏相同的效果

    • ctrl+q,解锁

打开文件

  • -m 只读模式打开文件,文件被编辑后不能够保存,只能够强制退出 
    vim简单总结

    • 其他的一个只读模式——使用view替换vim打开文件,文件被编辑后,可以用:wq!来强制保存退出 
      vim简单总结

  • -d file1 file2 对比两个文件,不同的地方显示高亮 
    vim简单总结vim.1.png

  • vim +[num] 文件打开后,光标直接跳到第num行的行首,如果没有指定num,则光标跳到文件的最后一行的行首

  • vim +/pat 打开文件后,光标跳到第一个匹配{pat}的行的行首 
    tips

  • 如果vim DIR,也同样可以进入,同样可以编辑,但是无法保存。 
    Linux同一个目录下,不能有同名的文件夹或文件

  • 显示:标准屏幕显示20行

末端模式命令

:wx 见标题:编辑完成后 
:r /path 在光标所在行之后,新建行,并 读入文件 
:!cmd 在vim中执行bashshell的命令(并不会插入) 
:r ! cmd 或者 :r!cmd 在当前行之后插入命令执行结果

定位,跳转

单词跳

  • w    下一个单词词首

    • #w    下面的#个单词词首

  • e    下一个单词词尾

    • #e    下#个单词词尾

  • b    前一个单词的词首

    • #b    前#个单词词首

字符跳

  • h 向左跳一个字符

    • [num]h 向左跳[num]个字符

  • j 向下跳一个字符

    • [num]j 向下跳[num]个字符

  • k 向上跳一个字符

    • [num]k 向上跳[num]个字符 
      tips: 
      Japan在Korea下面,J向下,K向上

  • l 向右跳一个字符

    • [num]l 向右跳[num]个字符

多行跳

  • H(HIgh) 当前页第一行的行首

    • [num]H 当前页第[num]行的行首

  • L(low) 当前最后一行的行首

    • [num] L 当前页倒数第[num]行的行首

  • M(middle) 当前页中间一行的行首

  • \^ 行首(不算空格)

  • 0 绝对行首

  • $ 绝对行尾

  • G 文章最后一行行首

    • [num]G 第[num]行行首

  • :[num] 文章的第[num]行

  • 文章第一行 1G,:1,gg

  • ( 前一句(以.为分隔)

  • ) 后一句

  • { ·前一段

    • 两行之间只有回车,不算段落,必须之间有一个空行,才算是不同段落。

  • } 后一段

屏幕为单位

  • c+f 前进一屏

  • c+b 后退一屏

  • c+d 前进 半屏

  • c+u 后退半屏

命令模式快捷键

  • x

    • #x

  • d

    • #d

  • y复制字符

    • #y

  • yy 复制行

    • #yy

  • c替换

    • #c

  • C删除到光标所在行尾,并切换到insert模式

    • #C

  • gu(变小写),

  • gU(变大写)的相关操作、 
    NOTES: 
    [num]gu/gU,操作num+1行,并且num默认为1,即gu/gU至少操作两行 
    在组合模式中:0gU$将本行从行首到行尾都转换为大写

  • ~大小写转换

这些命令通常都可以与地址定界符相结合使用,以d为例,如下: 
d$ 
d^ 
dH 
dL 
dM 
dw 
de 
db 
d) 
d} 
d( 
d{ 
dgg 
dG 
d1G 
还可以在命令前后都添加地址定界符,语法为: 

  • J 去掉行尾的回车符,将不同的行转换为同一行

  • p 在光标之后粘贴

  • P在前面粘贴

  • u 撤销

    • u 撤销

  • U 撤销光标落在这一行后,对此行所做的所有更改

  • c+r 取消刚才的撤销,

  • . ()英语的句) 重做

  • [num]. 重做num次,默认为1

地址定界

  • :#

  • :#1,#2

  • :#1,+#2

  • :. 当前

  • :$ 最后一行

  • :$-1 倒数第二行

  • %或者‘:1,$’ 第一行到最后一行

  • :/pat1/,/pat2/d删除第一个匹配pat1到第一次匹配pat2之间的行。

  • :#,/pat3/从第#行开始,到第一次匹配pat3,之间的行

vim的命名寄存器

vim一共有26个(a-z),1个无命名寄存器(默认寄存器)

  • “a表示后续的操作在a寄存器中操作

  • “ayy复制当前行,到a寄存器

  • 3“ayy表示复制3行到a寄存器中

  • 默认情况使用的是无命名寄存器

“ap粘贴a寄存器的内容到当前航

编辑完成后

  • :x= 相当于:wq,但是尽量别用x,因为x的使用,会产生不安全因素

  • ZZ 存盘退出

  • ZQ 不存盘退出

  • :w /path 存内容到path文件,vim打开的文件不会变。

多窗口模式

打开方法

- vim file1 file2 file3
- vim -o 打开横向
- vim -O 打开多个竖向
- vim -p 打开多个tag

切换方法

  • 命令模式:c+w+向下

  • 命令模式:c+w+向上

  • :next

  • :prev

  • :last

  • :first

  • :wqall

  • c+w+v 左右

  • c+w+s 上下

关闭窗口

  • c+w+q取消相邻窗口。

  • c+w+o取消全部其他窗口

模式转换

  • a 追加模式,在当前光标所在字符之后插入(光标跳到当前字符之后的一个字符,并进入INSERT模式)

    • 如果当前行包含一个字符(即使是空白字符也可以),在该字符之后插入

    • 如果当前行为空白行(连空白字符都没有,直接就是回车),直接插入

  • A 光标到当前行最后一个字符

  • i 光标位置不变,在当前光标之前插入

  • I 光标自动跳到行首

  • o 在当前行后,新建一行

  • O 在当前行前,插入一行

  • R 进入替换模式,会将光标所在位置的字符替换为输入字符

  • r 单字符替换模式,只替换一次

other notes:

  • vim打开passwd文件或者其他文件,经常会有额外的提示

    这种现象的原因往往是上次使用该文件的时候异常退出导致的。这种异常退出,会使原本打开时生成的缓存文件.passwd.swap文件,没有被正常删除。 
    只要删除了隐藏文件.filename.swqp就可以了

  • 关于vim打开文件后的各种颜色

    在/etc/文件下打开文件,一般都是有颜色的。vim会自动给那些它认为有意义的文件颜色。这些文件,要么是有结尾标识(比如.sh),要么在文件中有标识(比如#!/bin/bash),要么在特定的文件夹下面(比如/etc/下通常被识别为配置文件)。如下:


vim.2.pngvim.3.png

原创文章,作者:m20-吴清玲,如若转载,请注明出处:http://www.178linux.com/36414

(0)
m20-吴清玲m20-吴清玲
上一篇 2016-08-18
下一篇 2016-08-18

相关推荐

  • https实现

    实现https 搭建CA 颁发证书

    2018-01-29
  • GRUB

    什么是GRUB GRUB(boot loader):grub:GRand Unified Bootloader     有两个版本:grub 0.x:grub legacy经典版;grub 2.x grub legacy:主要运行分三个阶段 stage1(第一阶段):安装在mbr中 stage1.5(第1.5阶段):存…

    Linux干货 2016-09-21
  • openssl关于CA证书的创建

    1、用openssl实现证书申请 先在/etc/pki/CA/目录下创建一个index.txt的文件,作为ca证书的数据库 在相同目录下创建一个serial的序列号文件,并写入01 生成ca的签名证书用到的私钥文件 注意:私钥的权限时600,文件名必须是cakey.pem 生成自签证书 这样私有CA建立完成 申请认证: 在申请的机器上生成私钥 生成申请文件 …

    Linux干货 2016-09-23
  • 9、varnish实现动静分离、负载均衡、后端服务器健康状态检测

    varnish 4.0 版本 varnish实现动静分离 # vim /etc/varnish/varnish.params VARNISH_LISTEN_PORT=80 –> 修改为80端口 # vim /etc/varnish/default.vcl backend html {    .host = “1…

    Linux干货 2016-11-13
  • linux命令的使用格式

    Linux命令的一般格式为: [root@node1 ~]#command [选项] [参数] 1、ifconfig 设备 参数 参数: up:启动指定设备 down:关闭指定设备 arp:指定设备是否支持ARP协议 -a:显示全部接口信息 例如:[root@node1 ~]#ifconfig eth0 up #启动eth0网卡 2、echo打印 &nbsp…

    Linux干货 2016-09-17
  • bash脚本编程

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell;分别统计这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i loginSum=0; declare -i nologinSum=0; for x in `cat /etc/passwd|cut -d: -f 7` do if [ “/sb…

    Linux干货 2017-10-31