2019独角兽企业重金招聘Python工程师标准>>>  
9月29日任务
5.5 进入编辑模式
5.6 vim命令模式
5.7 vim实践
Vim编辑模式
进入编辑模式
| 操作 | 说明 | 
| i | 在光标所在字符前插入内容 | 
| I | 在光标所在行行首插入内容 | 
| a | 在光标所在字符后插入内容 | 
| A | 在光标所在行行尾插入内容 | 
| o | 在光标所在行及下一行之间插入一个新行,并在该行行首处进行编辑 | 
| O | 在光标所在行及上一行之间插入一个新行,并在该行行首处进行编辑 | 
退出编辑模式
按ESC键即可
vim命令模式
位置定位
一般模式下,输入**:n**(n为行号),然后按回车键,光标自动定位到n行行首。
内容搜索(高亮显示)
在一般模式下输入/或?进行内容的搜索
-  /搜索内容 

n向下搜索,N向上搜索
-  ?搜索内容 

n向上搜索,N向上搜索
内容替换
在一般模式下输入“:”加 s可以进行替换操作
格式 “ :范围 s/替换前/替换后/g ”
(s替换,g全部,不加g只替换一行中最先出现的那个)
例:替换/etc/passwd的拷贝文件中1-10行内所有的/sbin为/test
初始数据如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin-  加g的效果 
:1,10 s#/sbin#/test#g

-  不加g的效果 
:1,10 s#/sbin#/test#

只替换了当行的第一个匹配项
当替换的内容里包含/,有两种方法解决:
-  在内容的/前加\进行转义 
-  使用其他字符(#%*)进行分割如s#/root#/home#g 
其他命令
-  :wq | :wq! 保存退出 
-  :set nu 显示行号 
-  :set nonu 不显示行号 
-  :nohl 取消高亮 
-  :x -  文件被修改了 跟:wq效果一致 
-  ==文件未被修改== :wq会修改mtime,:x不会 
 
-  
vim扩展知识
常用快捷键
快速注释文本内所有的行
-  ctrl+v (进入可视块编辑模式) 
-  j/k (向下移动选择每行行首) 
-  shift+i + # (在第一行插入#) 
-  按esc (每行自动插入第一行插入的#) 
查看光标所在位置单词(命令)的man手册
shift+k
删除光标所在字符到某个字符之间的所有字符
#  删除前
sync:x:5:0:sync:/sbin:/bin/syncd + f + /
删除了中间的“sync:/”# 删除后
sync:x:5:0:sbin:/bin/sync删除光标后的所有字符
D 或 shfit+d
删除当前光标所在位置的单词
d + i + w
选中当前光标上的单词
v + i + w
自动代码缩进导致黏贴代码缩进混乱的2种解决
-  :set noai nosi (黏贴前执行) 
-  :set paste 
文件加密、解密
加密
-  vim/vi file 
-  :X 回车,输入密码并确认 
-  保存退出 
-  再次使用vim/vi编辑,不输入密码回车会显示为乱码 
解密
-  vim/vi file 
-  :set key= 设置密码为空 
-  保存退出 
更多使用操作,可以查看《Vim实用技巧》一书。