优雅玩转vim

视频教程传送门:https://www.imooc.com/learn/1049

Vim介绍

vim是一个unix以及类unix文本编辑器。

特点:功能强大、高端可定制。

vim与vi的区别:vim = vi +IMproved

  1. 多级撤销
  2. 语法加亮
  3. 自动补全
  4. 支持多种插件
  5. 通过网络协议(HTTP/SSH)编辑文件
  6. 多文件编辑
  7. vim可以编辑压缩格式文件(gzip、zip等)

vim配置文件-vimrc

vimrc 概述: vim run command,分为 系统级vimrc用户级vimrc

查看vimrc版本 			:version
注释方式: “
设置显示行号	 			:set number
取消显示行号	 			:set nonumber
设置光标的位置信息			:set ruler
取消光标的位置信息			:set noruler
查找匹配高亮显示			:set hlsearch
边搜素边匹配高亮显示		:set incsearch
查找不区分大小写			:set ignorecase
跟随上行缩进方式			:set autoindent	
花括号缩进				:set smartindent
设置背景颜色				:set bg=light

设置快捷键 :map

例:	map <F3> i<ul><CR><Space><Space><li><li><CR><Esc>I</ul><Esc>kcit 
	map <F4> <Esc>i<li></li><Esc>cit
	let mapleader=","	
	map <leader>w :w!<cr>

按F3后,结果输出:

<ul>		
	<li></li>
<ul>

按F4后,结果输出:

<li></li>

按,w,文件被保存。

vim 的常用的四种模式

在这里插入图片描述
在这里插入图片描述
查看vim模式的命令:

:h vim-modes-intro

vim基础使用

1.移动、跳转与缩进

光标移动

h左移
l右移
j下移
l上移
^/0移动到行首
$移动到行尾

单词/字符串移动

w/W正向移动到下一个单词开头
b /B反向移动到下一个单词开头
e/E正向移动到下一个单词结尾
ge反向移动到下一个单词结尾

在这里插入图片描述
跳转
在这里插入图片描述
2.删除、复制与粘贴
vim 字符块存放在寄存器中。:reg 查看所有寄存器内容。

类型含义表示方式举例特点
无名寄存器默认寄存器“”“” p=p会被最后一条覆盖
数字寄存器“+{1-9} 缓存最近10 次操作”0“0p0用于复制专用,1-9用于最近9次行删除或修改的记录
有名寄存器26个英文字母命名有名寄存器“[a-z]/[A-Z]“aaa"A 会通过^J追加到 a寄存器中
黑洞寄存器有去无回“_“_dw只想删除而不想覆盖无名寄存器

基本操作

按键操作定义
d剪切
y复制
p/P粘贴光标后/前
u撤销
ctr+r恢复
yw复制单词
y2w正向复制两个单词
yy复制整行

调换字符

按键操作定义
F + 【space】+ x剪切空格
x删除光标下的字符

组合删除

按键操作定义
dw删除一个单词
d$/D删除光标到行尾的字符
d^删除光标到行首的字符
{n}dd删除一/n整行
5dw正向删除5个单词
3w正向移动单词三次
D3w正向删除3w动作
2d3w正向删除3w动作两次

3.修改、查找与替换

插入模式

按键操作定义
I/ A插入模式并移动到行首/尾
i/ a光标后/前插入
[n]O/ o行前/后插入n次
[n]+i插入模式重复n次

大小写转换

按键操作定义
~单个字符大小写转换
g~w(word)单词大小写转换
g~$/ g~~整行大小写转换
gU/uw单词大小写转换

查找

按键操作定义
F/f {char}反向/正向单个字符查找
t{char}查找字符前一个字符
dt{char} /df{space}删除光标到查找字符间字符
/{char}命令行查找

替换

按键操作定义
s/going/rolling/g当前行所有going替换成rolling
%s/going/rolling/g全局所有going替换成rolling
R替换模式
r单字符替换
cw修改一个单词
c$/C修改光标之后行内内容

vim高级使用

1.缓冲区与多文件编辑

缓冲区:是内存中的一块缓冲区域,用于临时存放vim打开过的文件。

缓冲区列表

在这里插入图片描述

查看缓冲区列表的三种方式::files :buffers :ls
缓冲区列表有:缓冲区序列号 指示状态 文件名 光标位置

缓冲区列表指示状态

标记含义
a激活缓冲区,缓冲区被加载且显示
h隐藏缓冲区,缓冲区被加载但不显示
%当前缓冲区
#交换缓冲区
=只读缓冲区
+已更改缓冲区
-不可改缓冲区

缓冲区列表操作

指令含义
:bp[revious]到上一个缓冲区
:bn[ext]到上一个缓冲区
:bf[irst]到第一个缓冲区
:bl[ast]到最后一个缓冲区
:buffer Number/file_name到指定缓冲区
:ball编辑全部缓冲区
ctrl + ^/b#交替缓冲区

2.多窗口操作与标签分组

分屏操作:

分割

指令含义
vim -O/on水平/垂直分屏 n:数字,o:Open
ctr + w c/q关闭当前窗口/最后一个窗口时退出
ctr + w s上下分割当前打开的文件
:sp filename上下分割,并打开一个新的文件
ctr + w v左右分割当前打开的文件
:vsp filename左右分割,并打开一个新的文件

移动分屏和尺寸变动

指令含义
ctr + w K向上移动
ctr + w J向下移动
ctr + w L向右移动
ctr + w H向左移动
ctr + w +增加高度
ctr + w -减少高度
ctr + w =等分高度

标签:容纳一系列窗口的容器。

标签操作

指令含义
:tabnew新建标签页
:tabfind查找并在新标签页中打开文件
:tabs显示已打开标签页的列表
:tabclose标签页
:tabonly仅保留当前标签页打开
:tabn/p/first/last移动到下/上/第一/最后一个标签页
:tabm将当前标签页放置到指定位置
gt/T移动到下/上一个标签
{i}gt移动到i位置的标签页
noremap :tabnextVimirc中自定义快捷键
noremap :tabpreviousVimirc中自定义快捷键
:tabe编辑标签中的某个文件
tabm 0/tabm移动当前tab 到第一个/最后一个标签页
tabm{i}移动当前tab到i+1位置

3.文本对象与宏

文本对象
在这里插入图片描述
块对象

指令含义
]/[[]block
)/(、bblock
>/<、>/<<> block
}/{、Bblock
ttag block: <> </>

:解决重复操作
在这里插入图片描述
宏最佳操作

  • 规范光标位置:0
  • 执行编辑和操作
  • 移动光标到容易回放的位置:j

宏保存:

  • viminfo /vimrc file
  • 保存历史和非空寄存器
  • vim启动是读取
  • 容易被覆盖

4.visual模式

定义:在可视化模式下,可以对一个文本块的整体进行操作。在这里插入图片描述

指令含义
viw选中单词
vis选中句子
vip选中段落
vi(选中圆括号中的内容
vi[选中中括号的内容
vit选中标签中的内容
v2i选中两层大括号之间的所有内容
v3aw选中三个单词(包含中间的2个间隔空格)
v3iw选中三个单词(2个单词+间隔空格)

可视化模式操作

操作符含义
gv重选上次的高亮选区
o切换选取边界
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值