vim工具使用的简易指导

文本编辑工具vim


选项

+N 				打开文件后,让光标处于第N行,+默认为行尾
+/PATTERN	
-b FILE			二进制方式打开文件
-d file1 file2 	比较多个文件
-m file 		只读打开文件
-e file 		直接进入ex模式

##如果文件存在,则打开并显示内容
##文件不存在,第一次存盘时创建该文件

模式转换

命令模式 > 插入模式

i	在光标所在处输入
I	在光标所在行的行首输入
a	在光标后面输入
A	在光标所在行的行尾输入
o	在光标所在行的下方打开一个新行
O	在光标所在行的上放打开一个新行

命令模式的光标跳转

'字符间的跳转'COMMAND
h:左
l:右
j:下
k:上
******************************************************
N COMMAND: 跳转由N指定的个数的字符 
4h 5j

'单词间的跳转'
w:	下一个单词的词首
e:	
b:
#COMMAND


'当前页的跳转'
H (页首)	M (页中间行)	L:页底
zt:	将光标所在行移到屏幕顶端
zz: 将光标所在行移到屏幕中间
zb:	将光标所在行移到屏幕底端

'行首行尾跳转'
^	跳转到行首的第一个非空白字符
0	(数字)跳转至行首
$	跳转到行尾

'行间移动'
#G 或拓展命令模式下	   跳转至第#行
G 					最后一行
1G/gg				第一行

'句间移动''.'隔开的视为句子
) 下一句 
( 上一句

'段落间移动''换行符'隔开视为段落
{	下一段
}	上一段

命令模式的操作

字符编辑
x		删除光标所在的字符
#x		删除光标处起始的#个字符
xp		交换光标所在的字符及其后面字符的位置
~		转换大小写
J		删除当前行后的换行符
替换命令(r,replace)
r	替换光标所在处的字符
R	切换成REPLACE模式
删除命令d
d	删除命令,可结合光标跳转字符,实现范围删除
d$	删除到行尾
d^	删除到非空行首
d0	删除到行首
dw
de
db
#COMMAND

dd	删除光标所在行
	#dd	多行删除

D	等效d$
复制命令y
y 复制,类似于d命令
y$
y0
y^
ye
yw
yb

yy 复制行
	#yy 复制多行
   
Y 复制整行
粘贴命令p
p	缓冲区存的内容为整行,则粘贴'当前所在行的下方';否则,则粘贴到'当前光标所在处的后面'

P 	缓冲区存的内容为整行,则粘贴'当前所在行的上方';否则,则粘贴到'当前光标所在处的前面'
改变命令c
c	修改后切换成插入模式

命令模式 > 插入模式
c$
c^
c0
cb
ce
cw
#COMMAND

cc	删除当前行并输入新内容,相当于S
	##cc
	
C	删除当前光标到行尾,并切换成插入模式
撤销更改
u	撤销最近一次更改
#u	撤销最浅的多次修改
U	撤销光标落在这行后 所有对慈航的修改
ctrl -r	重做最后的撤销更改
.	重复前一个操作
#.	重复前一个操作#次

命令模式的操作组合

objectChange©Delete(d)Yank(y)
lineccddyy
lettercldlyl
wordcwdwyw
Sentence aheadc)d)y)
Sentence behindc(d(y(
Paragraph abovec{d{d{
Paragraph belowc}d}d}

扩展命令模式ex

r FILE 读取FILE的文件内容到当前文件中
w FILE 将当前文件内容写入到FILE文件中 ##如果文件存在,使用w!执行时会覆盖原始内容
地址定界
ex模式下:
N1,N2	##N1起始行,N2为终止行
N1,+n	##N1起始行,加上N1+n行

. 代表当前行
$ 最后一行
% 全文

## Regex 正则表达式
/pattern/	匹配pattern行
/pat1/,/pat2/
	从第一次被pat1模式匹配到的行开始,到第一次被pat2匹配到的行结束
	
	#,/pat/
	/pat/,$

使用方式:后面追加编辑命令
d
y
w file:将范围内的行另存到指定的文件file中
r file:在指定位置插入指定文件中的所有内容
查找
/PATTERN	从光标所在处向文件尾部查找
?PATTERN	从光标所在处向文件头部查找
n			与命令同方向
N			与命令反方向
查找并替换
s/查找的内容/替换的内容/修饰符

针对查找的内容: 可以使用模式
针对替换的内容: 不能使用模式,但可以使用\1,\2等后向引用符号;可以使用&引用前面查找到的整个内容

修饰符:	
i	忽略大小写
g	全局替换,默认情况下,每行只替换第一次出现的匹配内容,后续内容不进行替换

分隔符/可以替换为其他字符
s@/etc@/var@g	使用@作为分隔符
s#...#...#i	

可视化模式

允许选择的文本块
	v	面向字符
	V	面向行
	ctrl v	面向块

可视化键可用于在与移动键结合使用
	w ) }

突出显示的文字可执行其他操作(d/y/等)

vim工具

存在26个命名寄存器和1个无命名寄存器,通常存放不同的剪切板内容,可以在不同会话之间共享

寄存器

寄存器名称格式:	a,b,...z	("寄存器COMMAND	放在数字和命令之间)
	
		3"tyy	表示复制3行到t寄存器中
		"tp		表示将t寄存器的内容粘贴

如果未指定寄存器,则使用无命名寄存器

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

标记与宏

ma	将当前位置标记为a,26个字符都可以做标记
'a	跳转到a标记的位置
qa	录制宏a,a为宏的名称
q	停止录制宏
@a	执行宏a
@@	重新执行上次操作的宏

二进制文件编辑

vim -b FILENAME	打开二进制文件

拓展命令模式下:
%!xxd	转换为可读的16进制

插入模式下,编辑二进制文件

拓展命令模式下
%!xxd -r	转换为2进制

保存退出

多窗口查看文件内容

多文件分割 
vim -o | -O FILE1 FILE2  [水平分割 | 垂直分割]
##窗口间切换
ctrl +w,Arrow[箭头:上下方向键]


单文件窗口分割
ctrl +w,s	水平分割
ctrl +w,v	垂直分割
ctrl +w,q	取消相邻窗口
ctrl +w,o	取消全部窗口

:wqall	退出

定制vim的工作特性

配置文件(永久)

​ 全局: /etc/vimrc

​ 用户: ~/.vimrc

单一进程的使用的特性设置:
行号(简写)	number
	显示行号: set nu 
	取消显示: set nonu

忽略字符的大小写(ignorecase)
	启用: set ic
	禁用: set noic

自动缩进(autoindent)
	启用: set ai
	禁用: set noai
	
复制保留格式(paste)
	启用: set paste
	禁用: set nopaste

显示Tab和换行符(^I / $)
	启用: set list
	禁用: set nolist

高亮搜索:
	启用: set hlsearch
	禁用: set nohlsearch

语法高亮:
	启用: syntax on
	禁用: syntax off 

文件格式:
	启用windows格式: set fileformat=dos 
	启用unix格式:	 set fileformat=unix
	set ff=dos | unix

设置文本宽度:
	set txtwidth=65(vim only)
	set wrapmargin=15

设置光标所在行的标识线
	启用: set cursorline //set cul
	禁用: set nocursorline 
	

更多的特性设置帮助
set 帮助
:help option-list 
:set / :set all

vim内置帮助
:help
:help topic
使用q 退出help.txt文件

vimtutor
结尾

文章由博主Benjemin (linux小白)自行整理,书写风格和内容不一定由大家所接受,期待多多交流。
如有内容需要修改或者补充的欢迎大家指正,谢谢。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值