Vim快速上手教程

vim基础

在vim中打开filename
vim filename
:e . 会打开内置的文件浏览器,浏览要当前目录下的文件

:n 文件名 新建文件

退出vim
:q

保存当前文件
:w

退出 Vim 并且不保存文件,!表示强制执行
:q!

保存文件并且退出 Vim
:wq
:x

撤销
u

U 撤销当前行的所有修改
返回撤销
CTRL+R

左移一个字符
h
下移一行
j
上移一行
k
右移一个字符
l

移到行首
0
移到行尾
$
移到行内的第一个非空白字符处
^

在文本中查找

光标之后的所有该词都高亮显示
/word

光标之前的所有该词都高亮显示
?word

查找后将光标移到该词的下一个出现位置
n

光标移到该词的上一个出现位置
N

将文件每一行上的所有 ‘foo’ 都改成 ‘bar’
:%s/foo/bar/g

将当前行上的所有 ‘foo’ 都改成 ‘bar’
:s/foo/bar/g

确认替换

如果把末尾的 g 改成 gc 在替换的时候,会有提示!推荐使用!
:%s/旧文本/新文本/gc
y - yes 替换
n - no 不替换
a - all 替换所有
q - quit 退出替换
l - last 最后一个,并把光标移动到行首
^E 向下滚屏
^Y 向上滚屏

按词移动

默认一个单词由字母,数字和下划线组成

w                # 移动到下一个词首
b                # 移动到前一个词首
e                # 移动到下一个词尾

单词快速匹配

命令功能
*向后查找当前光标所在单词
#向前查找当前光标所在单词

段落移动

  • vi 中使用 空行 来区分段落
  • 在程序开发时,通常 一段功能相关的代码会写在一起 —— 之间没有空行
命令功能
{上一段
}下一段

跳到字符处

fx 向右跳到本行字符x处(x可以是任何字符)
Fx 向左跳到本行字符x处(x可以是任何字符)
tx 和fx相同,区别是跳到字符x前
Tx 和Fx相同,区别是跳到字符x后

移动的其它命令

gg               # 移到文件顶部
G                # 移到文件末尾
:NUM             # 移到第 NUM 行 (NUM 是任意数字)
H                # 移到屏幕顶部
M                # 移到屏幕中间位置
L                # 移到屏幕末尾
+              #移到下一行的行首
-              #移到上一行的行首
%               跳到相对应的括号上,编程时常用如30%
"H"意为Home, "M"为Middle, "L"为Last.  当前屏幕的上中下位置
'               移动到上一次的修改行

4种模式

命令模式 - Vim 启动后就处于这个模式,用于导航和操作命令 插入模式 - 用于在你的文件中进行修改 可视模式 - 用于高亮文本并对它们进行操作 Ex 模式 - 用于跳到底部的 ‘:’ 提示行上输入命令

i                # 在光标位置前,将 Vim 切换到插入模式
a                # 在光标位置后,将 Vim
A                #在行末插入切换到插入模式
o:              #在当前行的下面另起一行,并变为插入模式
O:              #在当前行上面另起一行,变为插入模式
v                # 将 Vim 切换到可视模式  
V				 选中光标经过的完整行 
Ctrl + v  			垂直方向选中文本 
:                # 将 Vim 切换到 ex 模式
<esc>            # 无论你当前处于什么模式,都返回到命令模式
:e!            放弃更改,然后相当于重新打开
:help           帮助,可用ZZ退出帮助窗口

# 复制和粘贴文本
y                # 复制所选的内容
yy               # 复制当前行
d                # 删除所选的内容,剪切
dd               # 删除当前行,5dd :删除当前行开始的5行; 
dG              #(先输入d,然后按 shift 键输入g)删除当前行至最后一行的所以行。
D                #删除到行尾
p                # 在当前光标位置后粘贴复制的文本
P                # 在当前光标位置前粘贴复制的文本
x                # 删除当前光标位置处的字符, 删除3个字符就是3x 

vim中Nyy可以复制光标后的N行。有时我们不容易得出行数,这时可以用做标记的方法来制定复制范围:

1. 在开始行上输入ma作一个标记
2. 移动到结束行,输入y'a会复制当前行到标记a之间的文本。d'a会删除。或者是v进入可视模式,再13G跳转到相应行,y即可。
:10,20y    回车即可,相应的删除也是如此     :10,20d     (此方法比上面两种方法更简单)
:10,20 m 30    把10行到20行的内容,剪切到30行之后
:10,20 co 30   把10行到20行的内容,复制到30行之后
将光标放在 { 处,然后输入v%就可以把大括号中内容选定
%: 移动到与制匹配的括号上去(),{},[],<>等。将光标放在 { 处,然后输入v%就可以把大括号中内容选定

替换

命令英文功能工作模式
rreplace替换当前字符命令模式
Rreplace替换当前行光标后的字符替换模式
  • R 命令可以进入 替换模式,替换完成后,按下 ESC 可以回到 命令模式
  • 替换命令 的作用就是不用进入 编辑模式,对文件进行 轻量级的修改

把命令的结果读入 Vim

有时候你需要把某个命令的结果复制到 Vim 中,这在 Vim 也非常简单。切换到正常模式,然后输入 :read !command 即可把 command 的结果输入到 vim 中。

:read !ls -l

把外部文件读入 Vim

我开始使用 Vim 的时候,经常会打开一个文件、复制内容、关闭文件、打开另一个文件、然后粘贴进去复制到内容。其实Vim中读取另一个文件的内容非常方便。切换到正常模式,然后按:read。使用此快捷键你不需要手动打开文件来复制内容。

:read readme.md

Vim 的 ‘语法’

Vim 可以被认为是按 ‘动词-修饰词-名词’ 格式编排的一组命令:

动词 - 你的动作 修饰词 - 你如何执行你的动作 名词 - 你的动作所作用于的对象

‘动词’

d                # 删除
c                # 修改
y                # 复制
v                # 可视化选择

# '修饰词'

i                # 内部的
a                # 周围的
NUM              # 数字 (NUM 是任意数字)
f                # 查找文本并位于其上
t                # 查找文本并停于其前面
/                # 从光标处开始查找字符串
?                # 在光标前查找字符串

# '名词'

w                # 词
s                # 句子
p                # 段落
b                # 块

# 示例 '语句' 或命令

d2w              # 删除 2 个词
cis              # 修改段落内的内容
yip              # 复制段落内的内容 (复制你所在的段落)
ct<              # 修改直到括号开启处
                 # 对你的当前位置直到下个括号开启处的内容进行修改
d$               # 删除直到行尾
如果光标放在第一个s上,想删除到“(”为止,则输入dt(就可以了,t(的作用是跳到下一个"("前。
ctrl +n 自动补全 ctrl + p 也一样

分屏命令

  • 使用 分屏命令,可以 同时编辑和查看多个文件
命令英文功能
:sp [文件名]split横向增加分屏
:vsp [文件名]vertical split纵向增加分屏
1) 切换分屏窗口

分屏窗口都是基于 CTRL + W 这个快捷键的,w 对应的英文单词是 window

命令英文功能
wwindow切换到下一个窗口
rreverse互换窗口
cclose关闭当前窗口,但是不能关闭最后一个窗口
qquit退出当前窗口,如果是最后一个窗口,则关闭 vi
oother关闭其他窗口
2) 调整窗口大小
命令英文功能
+增加窗口高度
-减少窗口高度
>增加窗口宽度
<减少窗口宽度
=等分窗口大小

调整窗口宽高的命令可以和数字连用,例如:5 CTRL + W + 连续 5 次增加高度

一些快捷键和技巧

<!--TODO: Add more!-->
>                # 将所选内容缩进一级
<                # 将所选内容取消缩进一级
:earlier 15m     # 将文档还原到 15 分钟前的状态
:later 15m       # 逆转上述命令
ddp              # 相邻行交换位置,先 dd 再 p
.                # 重复之前动作

配置 ~/.vimrc

.vimrc 可用于在启动时对 Vim 进行配置。在vimrc中,双引号开头的行,将被当作注释忽略。

" 根据文件名检测文件类型,以便能进行智能自动缩进等操作。
filetype indent plugin on

" 开启语法高亮
syntax on

" 更好的命令行补全
set wildmenu

" 除了当使用大写字母时使用大小写无关查找
set ignorecase
set smartcase

" 当新开一行时,如果没有开启文件特定的缩进规则,
" 则缩进保持与你当前行一致
set autoindent

" 在左侧显示行号
set number

" 缩进选项,根据个人偏好进行修改

" 每个 TAB 的可视空格数
set tabstop=4

" 编辑时 TAB 对应的空格数
set softtabstop=4

" 当使用缩进操作 (>> 和 <<) 时缩进的空格数
set shiftwidth=4

" 将 TAB 转换成空格
set expandtab

" 为缩进和对齐开启智能化的 TAB 和空格切换功能
set smarttab

常用命令速查图
在这里插入图片描述### 最后强烈推荐一个windows的Gui的Vim软件。很好用。

gvim

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heart of sea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值