VIM文本编辑器使用介绍

Linux中的Vim编辑器是一款功能强大的文本编辑器,广泛应用于程序员和系统管理员中。Vim是“Vi IMproved”的缩写,它在Vi编辑器的基础上增加了许多改进和新特性。以下是一个详细的Vim编辑器教程,包含基本操作和一些高级功能。

命令格式

vim  [option]  file...

常用选项

-d	vim diff模式,比较多个文件之间的不同内容行,等同于vimdiff命令
-R	只读模式打开文件
-b	二进制模式打开二进制文件
-r	列出当前目录下所有swap文件
-r <file>	恢复模式:打开文件file的崩溃文件<.file.swp>
-p[N]	打开N个tab对应多个文件
-o[N]	打开N个窗口,且窗口垂直排列
-O[N]	打开N个窗口,且窗口水平排列
+	打开文件后,并且光标处于文件末行首部
+N	打开文件后,光标处于文件第N行首部
+/{char}	打开文件后,光标处于从文件首行开始的第一个{char}所在行
--cmd [command] 加载任何vmrc配置前,先执行conmand命令
-i <viminfo>	使用自定义的viminfo文件替代默认的.viminfo
--startuptime <file> 将vim启动过程信息写入文件 file

配置文件

/etc/vimrc     System wide Vim initializations.
~/.vimrc       Your personal Vim initializations.

VIM的三种视图模式

  • 命令模式
  • 编辑模式
  • 末行模式

三种模式之间切换

命令模式 --> : -->进入末行模式
命令模式 --> i/a/o I/A/O --> 进入编辑模式
编辑模式 --> ESC --> 进入命令模式
末行模式 --> ESC --> 进入命令模式

VIM 快捷键

命令模式进入编辑模式

i:当前光标所在字符前插入字符
a:当前光标所在字符后插入字符
o:当前光标所在行下一行插入字符,新增一行

I:在当前光标所在行首部插入字符
A:在当前光标所在行尾部插入字符
O:在当前光标所在行上一行插入字符,新增一行

命令模式

删除操作

	x		删除当前光标所在位置的一个字符
	[n]x	删除当前光标及其之后的n个字符
	X		删除当前光标之前的一个字符
	dd		删除当前光标所在行
	[n]dd	删除当前光标所在行及其之后的n行
	dw		删除从当前光标位置到下一个单词开头位置的文本
	D		删除当前光标至行尾的文本
	cc		删除光标所在行,并且转为编辑模式
	cw		删除光标所在处的单词,并进入编辑模式
	caw		删除光标所在处的单词及其后面的空格
	u		撤销上一次操作

复制操作

yy		将当前行复制到缓存区
nyy		将当前行向下n行复制到缓冲区
yw		复制从光标开始到词尾的字符
nyw		复制从光标开始的n个单词
y^      复制从光标到行首的内容
y$      复制从光标到行尾的内容
p		(lower)如果删除的或复制的是整行内容,则粘贴到光标所在行的下方(下一行),如果复制的或删除的是非整行内容,则粘贴至光标所在的字符后面(同一行)
P		(upper)如果删除的或复制的是整行内容,则粘贴到光标所在行的上方(下一行),如果复制的或删除的是非整行内容,则粘贴至光标所在的字符前面(同一行)
.		重复刚才的操作

搜索

/word	从当前光标所在行向下搜索word词,按n可以向下跳转到下一个word处(N反向跳转)
?word	从当前光标所在行向上搜索word词,按n可以向下跳转到上一个word处(N反向跳转)
:nohlsearch		(在末行模式) 取消所有高亮词显示

移动光标

	h	左移
	l	右移
	j	下一行
	k	上一行
	以上四个移动指令前可以加入数字,来实现多个字符或多行移动。

逐个单词移动

	w	移动至下一个单词词首 (lower)
	e	移动至当前或下一个词尾
	b	移动至当前或下一个词首

行内跳转

	0	光标跳到行首(绝对行首)
	^	光标跳到行首(行首第一个字符)

行间跳转

	[n]+	向下跳n行
	[n]-	向上跳n行
	#G	输入数字#,然后输入“G" 可以直接跳转到第#行
	G	跳转到最后一行
	gg	跳转到第一行

保存退出

	ZZ

末行模式

保存、退出

:[N]		回车后光标跳到第N行
:q			不保存直接退出
:w			保存
:wq  = :x	保存退出
:wall		保存所有打开的文件
:w filename1	将文件另存为filename1
:wnext		保存当前文件并跳到下一个文件
:wprev		保存当前文件并跳到上一个文件
:q!			不保存强制退出
:u			撤回上一次操作
:e filename2	继续打开新的filename2文件编辑

分割窗口

  • 横向打开或者创建新窗口

在当前vim窗口中,使用末行split命令打开新文件或者创建新文件(如果输入的filename不存在,则会创建一个名为filename的新文件)。

:split [filename]

直接创建新文件

:new [new_filename]
  • 纵向打开或创建新窗口

与横向类似,打开已存在的文件或者新建文件窗口。

:vsplit filename 也可以简写为:vsp filename
:vnew filename   只能新建文件窗口

关闭多窗口

:close    只能暂时关闭当前窗口,不能像wq一样保存文件并退出,且最后一个窗口不能使用close关闭。
:wqall	  全部保存退出

多窗口建切换

使用ctrl + w + <h、j、k、l> 在多个窗口之间切换光标。

ctrl + w + h 光标移动到左侧窗口

ctrl + w + j 光标移动到下方窗口

ctrl + w + k 光标移动到上方窗口

ctrl + w + l 光标移动到右侧窗口

多窗口大小调整

ctrl+w + 纵向扩大(行数增加)
ctrl+w - 纵向缩小 (行数减少)
Ctrl + W + < :将当前窗口的宽度减少
Ctrl + W + > :将当前窗口的宽度增加
:res(ize) num  例如::res 5,显示行数调整为5行
:res(ize)+num 把当前窗口高度增加num行
:res(ize)-num 把当前窗口高度减少num行
:vertical res(ize) num 指定当前窗口为num列
:vertical res(ize)+num 把当前窗口增加num列
:vertical res(ize)-num 把当前窗口减少num列

vim与shell之间切换

在vim窗口的末行模式,使用

:shell

进入shell会话。

从shell返回vim,使用

exit

多标签

创建新标签

:tab new [tab_name]

返回上一个标签

:tabprevious

切换到后一个标签

:tabnext
:tabfirst	第一个标签
:tablast	最后一个标签

关闭标签

:tabclose

替换内容

:s/old/new			用new替换光标所在行中首次出现的old
:s/old/new/g		用new替换光标所在行中所有的old
:s/old/new/gi		用new替换光标所在行中所有的old,并且忽略old字母的大小写
:s/old/new/gc		用new替换光标所在行中所有的old,并且在替换前会提示确认
:n,ms/old/new/g	用new替换从n到m行里所有的old
:%s/old/new/g		用new替换当前文件里所有的old
:.,$s/old/new/g		用new替换当前行至末行的所有old
:.,$-1s/old/new/g	用new替换当前行至倒数第二行之间的所有old

删除中间的某些行

:STARTLINENUMBER,ENDLINENUMBERd
:.,+Nd	表示删除从当前行及其之后的N行内容。
:.,-Nd	表示删除从当前行及其之前的N行内容。(会有提示逆向删除操作,需要Y确认)
:.,$	表示删除当前行之末行的所有内容。
:1,$	删除整个文档所有内容

临时修改当前vim的环境参数

:set number			显示行号
:set nonumber		取消行号显示
:set cursorline		高亮当前行
:set nocursorline	取消高亮当前行
:set cursorcolumn	高亮当前列
:set nocursorcolumn	取消高亮当前列
:set fileformat=unix	将文本修改为unix格式

#附1.在线练习vim

在线vim编辑器练习

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值