15、文本编辑工具VIM使用

VIM使用格式

vim  [option] ...file ...

常见选项

 +# 打开文件后,让光标处于第#行

+/pattern 让光标处于第一个呗pattern匹配到的行行首

-b file 二进制方式打开文件

-d file1 file2 ... 比较多个文件,相当于vimdiff

-m file 只读打开文件

15、文本编辑工具VIM使用

-e file 直接进入ex模式,相当于ex file

-y file easy mode直接看操作文件

VIM三种模式

vim有三种模式(命令或普通模式、插入或编辑模式、扩展命令模式)

三者之间需要进行转换             

15、文本编辑工具VIM使用

扩展命令模式

在命令模式中,在英文字符下,按住shift+:(输入:)进入扩展命令模式,底部会出现:

15、文本编辑工具VIM使用

扩展命令基本命令

w 写入保存 

wq 写入保存退出   

x等同于wq

X加密 

q退出

q!强制不保存退出 

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

15、文本编辑工具VIM使用

w filenamen 将当前文件写入到另一个文件中(另存为)

15、文本编辑工具VIM使用

!commad 执行命令

r!command 读入命令的输出

15、文本编辑工具VIM使用

地址定界

格式:开始,结束

 # 具体第#行

 #,#从左侧#开始 #结束

 #,+# 从#开始,#+#结束

 . 当前行

 $ 最后一行

 % 全文,相当于1,$

 /pattern/ 从当前行向下查找匹配到pattern第一行

 /pattern1/,/pattern2/ 从第一次pattern1匹配行开始到第一次被pattern2匹配行结束

地址定界后跟一个编辑命令

y 复制

d 删除

w file 指定文件另存为

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

查找和替换

s/要查找的内容/替换为的内容/修饰符

说明:后面如无修饰符,只匹配一次要查找内容进行替换,后面需要加g修饰符,进行全局替换;如遇到查找到内容中包含/,可使用其他分隔符;如 s@/etc@/var@g 该命令使用@替换/分隔符

修饰符

i 忽略大小写

g 全局替换

gc 全局替换,每次替换前询问

定制vim的工作特性

全局 /etc/vimrc   个人 ~/.vimrc

设置行号显示 set number  简写 set nu 

取消行号显示 set nonumber

忽略字符大小写启用 set ignorecase 简写 set ic

取消忽略大小写  set noic

自动缩进  set autoindent 简写 set ai

取消自动缩进  set noai

复制保留格式 set paste

取消复制保留格式  set nopaste

显示tab和换行符 set list  禁用set nolist

高亮搜索 set hlsearch  禁用 set nohlsearch

语法高亮  syntax on  禁用 syntax off

文件格式  windows  set fileformat=dox  unix set fileformat=unix(set ff=dos|unix)

tab用空格代替  set expandtab (set et 默认8个空格)  禁用 set expandtab

指定tab多少个空格代替 set tabstop=#

设定文本宽度   set textwidth=#   set wrapmatgin=#

设定标示线 set cursorline (set cul) 禁用 set nocursorline

加密  set key=password  禁用 set key=     

命令模式

命令模式又称为normal模式

光标跳转

h:左  L:右 j:下  k:上

#h/l/j/k:跳转#个字符

w:下一个单词首部

e:下一个单词尾部

b:当前单词首部

 #w/e/b同上

H:页首 M页中间  L页底

zt 将光标当前屏幕顶端

zz 将光标移动到当前屏幕中间

zb 将光标移动到当前屏幕底部

^ 行首非空白字符 0行首  $行尾

#G 跳转到第#行  G最后一行  1G或者gg 第一行

ctrl+f 尾部翻一屏  ctrl+b首部翻一屏 ctrl+d尾部半屏  ctrl+u 首部半屏

字符编辑

x 删除光标处字符  #x删除光标起始x个字符  xp交换光标所在出的字符及其后面字符的位置

~转换大小写 J删除当前行后的换行符

替换命令

r 只替换光标所在处一个字符  R切换成replace模式,按esc可回到命令模式

删除命令

d 删除命令

d$删除到行尾  d^删除到行首 

dd剪切光标所在行

#dd 多行删除

D:从当前光标位置一直删除到行尾等同于d$

复制命令

y   y$ y^ 同上解释

粘贴命令

p 粘贴到目标所在的后面,如果是行,则在光标所在行下方

P 同小p相反

改变命令

c:删除后切换成插入模式  c$ c^ cc #cc等

查找

/pattern向下查找

?pattern向上查找

n 与命令同方向

N 与命令反方向

撤销更改

u:撤销最近的更改  #u 撤销之前多次更能够

U 撤销当前光标所在行所有更改

高级用法

0y$  (先到行头,y开始复制,$到行尾字符)

100ilgw  输入100次lgw

di“ 删除“”之间的内容

yi( 复制()之间的内容

vi[ 光标在[]之间,选中[]之间的内容

dtx 删除字符直到遇见光标后的第一个x字符

ytx 复制字符直到遇见光标之后的第一个x字符

可视化模式

在末尾有“--visual--”指示,表示在可视化模式

允许选中文本块

v 面向字符 

V 面向整行

ctrl-v 面向块

在所有行首插入#  crtl+v --- G---I---#---esc

多窗口模式

vim -o|O file1 file2 

-o 水平或上下分割  -O 垂直或左右分割

在窗口间切换 ctrl+w

crtl+w,s 水平分割,上下分屏  ctrl+w,v垂直分割,左右分屏

ctrl+w,q取消相邻窗口 ctrl+w,o取消全部窗口

:wqall 退出

编辑二进制文件

以二进制方式打开文件

vim -b file 

扩展命令 %!xxd 转换成16进制   %!xxd -r 退回二进制。

更多vim使用方式请通过网上进行查找。

发表评论

相关文章