Vim常用指令汇编

真正的计算机科学家使用vi。

一、文件

(一)打开

| vim file | 打开并编辑文件 |
| e file | 加载并编辑文件 |
| open file | 加载并编辑文件 |
| r file | 加载file至当前文件光标处 |

(二)关闭

q 直接退出
q! 强制退出
w 保存
w filename 另存为filename
wq 保存并退出
wq! 保存并强制退出
n1,n2 w file 将 n1 到 n2 的内容储存成 file

(三)浏览

Vexplorer 打开文件浏览器

二、编辑

(一)插入

| o | 行下方插入 |
| O | 行上方插入 |
| a | 光标后插入 |
| A | 从光标所在行的最后一个字符处开始输入 |
| i | 光标处插入 |

J 将光标所在行与下一行的数据结合成同一行

(二)删除

| x / #x | 删除光标所在位置的一个字符或#个字符,包括自己【左侧 ------> 右侧】 |
| X / #X | 删除光标所在位置的一个字符或#个字符,包括自己【左侧 ------> 右侧】 |
| dd | 删除光标所在行 |
| #dd | 删除光标所在行开始向下#行【包括当前行】 |
| dw | 删除一个单词 |
| d^ | 删除光标至行首的所有字符 |
| D/d$ | 删除光标至行尾所有字符 |
| d0 | 数字 0 ,删除游标所在处,到该行的最前面一个字符 |
| di' | 删除单引号'内的字符,保存引号。【单引号可替换为双引号,括号等】 |

da' 删除单引号'内的字符及引号。【单引号可替换为双引号,括号等】

Vim快速选中、删除、复制引号或括号中的内容

VIM中有快速对引号或括号等标点内的内容进行选中、删除、复制操作的超级技巧,非常实用。可以极大的提高编辑效率。

以下命令可以对标点内的内容进行操作。

ci'、ci"、ci(、ci[、ci{、ci< - 分别更改这些配对标点符号中的文本内容

di'、di"、di(或dib、di[、di{或diB、di< - 分别删除这些配对标点符号中的文本内容

yi'、yi"、yi(、yi[、yi{、yi< - 分别复制这些配对标点符号中的文本内容

vi'、vi"、vi(、vi[、vi{、vi< - 分别选中这些配对标点符号中的文本内容

(三)复制

| yw | 将光标所在之处到当前字尾的字符复制到缓冲区中。 |
| #yw | 复制#个字到缓冲区 |
| y#w | 从光标处开始复制3个字到缓冲区 |
| yy | 复制光标所在行到缓冲区。 |
| #yy | 「5yy」表示拷贝从光标所在的该行"往下数"5行文字【包括光标所在行】 |
| y0 | 复制光标所在的那个字符到该行行首的所有数据 |

y$ 复制光标所在的那个字符到该行行尾的所有数据

(四)粘贴

| p | 将缓冲区内的字符贴到光标所在位置这一行的下一行。 |

#p 「5p」表示拷贝从光标所在的该行"往下数"5行文字。【包括光标所在行】

(五)撤销

u 如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次复原。
ctrl + r 撤销的恢复,相当于对撤销的撤销
. 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

(六)替换

| r | 单次替换光标下的字符 |

R 多次替换光标下的字符,直到按下 ESC 为止;

三、光标

(一)行移

键盘上↑↓←→来进行移动移动,或h、j、k、l键。

| h | 左 |

#h 左移#个字符
j
#j 下移#行
k
#k 上移#行
l
#l 右移#个字符
#<enter> 向下移动#行

(二)屏移

|--------|---------------|
| ctrl+b | 屏幕往"后"(上)移动一页 |
| ctrl+f | 屏幕往"前"(下)移动一页 |
| ctrl+u | 屏幕往"后"(上)移动半页 |
| ctrl+d | 屏幕往"前"(下)移动半页 |

(三)跳转

| gg | 进入到文本开始 |
| G | 进入文本末端【shift + g】 |
| #gg | 光标移到第#行,如:5gg |

$ 移动到光标所在行的"行尾"【shift + 4】
^ 移动到光标所在行的"行首"【shift + 6】
w 光标跳到下个字的开头
W 光标移到下一个单词
b 光标回到上个字的开头
B 光标移到上一个单词
e 光标跳到下个字的字尾
#l 光标移到该行的第#个位置,如:5l,56l

四、查找

|-----|------------|
| /xx | 向后查找字符串xx |
| ?xx | 向前查找字符串xx |
| n | 查找下一个字符串xx |
| N | 查找上一个字符串xx |

五、替换

复制代码
:[range]s/pattern/string/[c,e,g,i]

range表示替换范围,如"1,4"、"8,$",字符%代表全文。

|----|----------|
| 标志 | 功能 |
| c | 替换前询问 |
| e | 不显示错误信息 |
| g | 替换一行所有匹配 |
| i | 忽略大小写 |

六、分屏

|-----------|-------------------|
| vnew | 新建空白垂直分屏 |
| new | 新建空白水平分屏 |
| vsplit/vs | 新建垂直分屏,分屏内容与当前屏一样 |
| split | 新建水平分屏,分屏内容与当前屏一样 |
| ctrl+ww | 分屏切换 |

七、配置

|---------------------------|----------|
| :set number | 显示行号 |
| :set cindent shiftwidth=N | 设置行缩进字符数 |
| :set autoindent | 设置自动缩进 |
| :set tabstop=N | 设置tab宽度 |
| :set ignorecase | 查找时忽略大小写 |
| :syntax on | 语法高亮 |

八、Shell命令执行

|---------------------|-----------|
| :terminal | 新建水平控制台分屏 |
| :tab terminal | 新建控制台全屏 |
| :!shell command | 执行shell命令 |

相关推荐
VidDown11 小时前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
VidDown15 小时前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
夜猫逐梦17 小时前
【UE基础】03.蓝图与编辑器工作流
编辑器·ue·蓝图·ue编辑器
VidDown17 小时前
视频帧率技术详解:从 24fps 到 120fps,帧率如何影响你的观看体验?
网络·网络协议·编辑器·音视频·视频编解码·视频
爱就是恒久忍耐18 小时前
VSCode里如何比较2个branch
ide·vscode·编辑器
bloglin9999919 小时前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器
ThornArmor20 小时前
【工具篇·番外】跨语言生态的主权回收:基于 ISA 说明书的 4-bit 双向汇编系统全线封顶
c语言·开发语言·汇编·c++·重构·架构
zyplayer-doc1 天前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新
古德new1 天前
鸿蒙PC迁移:Photoflare Qt 图片编辑器鸿蒙PC适配全记录
qt·编辑器·harmonyos
是星辰吖~2 天前
WIN32_线程(下)
汇编