20170727 vim编辑器

简介:
vi:visual interface,可视窗口,历史悠久的文本编辑器
vim:vi improved,vi编辑器增强版,增加了颜色显示,光标坐标位置显示等功能

一、vim 打开文件

  • 语法:vim [OPTION]... FILE...
  • 用法:
+#  file1           
+/pattern file1     
-b file1            
-d file1 file2      
-m file1            
  • 实验:

    1. 打开/etc/passwd文件光标直接指向第6行行首
      命令:vim +6 /etc/passwd
      20170727 vim编辑器_第1张图片
    2. 打开/etc/passwd文件光标直接指向用户名以f开头的行
      命令:vim +/"^f.*\>" /etc/passwd
      20170727 vim编辑器_第2张图片
    3. 比较/etc/passwd和/etc/shadow文件
      命令:vim -d /etc/passwd /etc/shadow
      20170727 vim编辑器_第3张图片
  • vim编辑的文件路径如果该文件存在,文件被打开并显示内容
    如果该文件不存在,当编辑后第一次存盘时创建它
    但是目录一定要存在,vim不具备创建目录的功能

二、vim 模式编辑器

  • vim编辑器的三种模式:
    • 命令模式(Normal),默认模式,功能:光标移动,文本剪切、粘贴等
    • 插入模式(Insert),功能:修改文本
    • 扩展命令模式(extend command),功能:保存、退出等
  • Esc退出当前模式,返回命令模式
  • 模式转换:
  • 命令模式进入插入模式
i     
I     
a     
A     
o     
O     
  • 命令模式进入扩展命令模式,输入:
:q     
:q!     
:w     
:wq    
:x     
:w file1    
:r file2     
:!command     
:r!command    
  • 实验:
    1. 将当前编辑的文件另存为当前目录下的文件file3
      命令::w file3
      20170727 vim编辑器_第4张图片

      2.读取/etc/fstab文件内容至当前文件
      命令::r /etc/fstab
      20170727 vim编辑器_第5张图片

      3.在扩展命令模式下创建/app下的目录newdir,并用ls命令查看是否创建成功
      命令::!mkdir /app/newdir
      20170727 vim编辑器_第6张图片

      20170727 vim编辑器_第7张图片

      4.在扩展命令模式下读入/etc/password文件中用户ftp的行内容
      命令::r!grep "^ftp\>" /etc/passwd
      20170727 vim编辑器_第8张图片
  • vim编辑器的插入模式和扩展命令模式之间不能直接相互切换,需要通过命令模式过渡,vim编辑器三种模式的转换关系如下:
20170727 vim编辑器_第9张图片

三、vim 命令模式详解

(一)光标跳转

  • 字符间跳转:
h     
l     
j     
k     
#COMMAND     
  • 单词间跳转:
w     
e     
b     
#COMMAND     
  • 当前页跳转:
H     
M     
L     
  • 行首行尾跳转:
^     
0     
$     
  • 行间移动:
#G         
G          
1G, gg     
  • 句间移动:
)     
(     
  • 段落间移动:
}     
{     

(二)翻屏操作

Ctrl+f     
Ctrl+b     
Ctrl+d     
Ctrl+u     

(三)编辑操作

  • 字符编辑:
x     
#x    
xp    
~     
J     
  • 替换命令 r:
r     
R     
  • 删除命令 d:
d      
d$     
d^     
d0     
dw     
de     
db     
dd     
#dd    
D      
  • 复制命令 y,语法类似删除 d:
y$     
y^     
y0     
yw     
ye     
yb     
yy     
#yy    
Y      
  • 粘贴命令 p:
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
  • 改变命令 c,删除后切换成插入模式
c$     
c^     
c0     
cw     
ce     
cb     
cc     
#cc    
C    
  • 100istring Esc: 粘贴字符串string100遍

  • 撤销更改 u

u          
#u         
U          
Ctrl-r     
.          
n.         

四、vim 扩展命令模式详解

(一)地址定界

  • 定界描述方法
#                
#1,#2            
#1,+#2           
.                 
$                 
.,$-1             
%                 
/pat1/,/pat2/     
#,/pat/          
/pat/,$           
  • 使用方式:后跟一个编辑命令,如1,3d .,8y 4,+5w 8,$r

(二)查找

/PATTERN     
?PATTERN     
n            
N            

(三)查找并替换 s

  • 语法::%s/要查找的内容/替换为的内容/修饰符
  • 修饰符:
i     
g     
gc    
  • 查找替换中的分隔符/可替换为其它字符,如:%s/\/dev\/sda/\/dev\/sdb/g可以写成:%s@/dev/sda@/dev/sdb@g

五、vim 编辑二进制文件

  • 以二进制方式打开文件
    vim -b binaryfile
  • 扩展命令模式下,利用xxd命令转换为可读的十六进制
    :%!xxd
  • 扩展命令模式下,利用xxd命令转换回二进制
    :%!xxd -r
  • 实验:
    1、vim打开/bin/cat可执行二进制文件;
    2、将内容转换为可读十六进制:%!xxd
    20170727 vim编辑器_第10张图片

    3、再将内容转换回二进制:%!xxd -r
    20170727 vim编辑器_第11张图片

六、vim 可视化模式 v

  • 允许选择的文本块
v          
V          
ctrl-v     
  • 可视化键与移动键(h,j,k,l.etc)结合灵活选取编辑区域


    20170727 vim编辑器_第12张图片
  • 突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

七、vim 多文件模式

  • 打开:vim FILE1 FILE2 FILE3 ...
  • 操作:
:next      
:prev      
:first     
:last      
:wall      
:qall      
:wqall     

八、vim 多窗口

  • 多文件分割
vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
在窗口间切换:ctrl+w, Arrow
  • 单文件窗口分割:
ctrl+w,s     
Ctrl+w,v     
ctrl+w,q     
ctrl+w,o     
20170727 vim编辑器_第13张图片

九、vim 定制工作特性

在扩展命令模式下的修改仅对当前vim进程有效,永久有效需要修改配置文件,对系统全局有效的配置文件为/etc/vimrc,对当前用户有效的配置文件为~/.vimrc

  • 行号
:set number 或者 :set nu         
:set nonumber 或者 :set nonu     
20170727 vim编辑器_第14张图片
  • 括号成对匹配
:set showmatch 或者 :set sm         
:set noshowmatch 或者 :set nosm     
  • 自动缩进
:set ai       
:set noai     

前三行每行回车后光标自动跳至行首,没有与第一行对齐;启动自动缩进后,如最后三行每行回车后光标自动与上一行对齐

20170727 vim编辑器_第15张图片
  • 高亮搜索
:set hlsearch       
:set nohlsearch     
  • 语法高亮
:syntax on      
:syntax off     
20170727 vim编辑器_第16张图片
  • 忽略字符的大小写
:set ic       
:set noic     
  • 文件格式
:set fileformat=dos      
:set fileformat=unix     
  • 设置文本宽度
:set textwidth=65     
:set wrapmargin=15     

十、vim 帮助

:help option-list     
:help topic           
vimtutor              

你可能感兴趣的:(20170727 vim编辑器)