VIM实用命令大全及操作技巧
需积分: 23 23 浏览量
更新于2024-10-28
收藏 58KB 7Z 举报
Vim是一个广泛使用的文本编辑器,它是vi编辑器的增强版,提供了更多的功能和灵活性。对于初学者和经验丰富的用户来说,掌握Vim的基本命令对于高效编辑文本至关重要。以下是对Vim常见命令的详细总结,旨在帮助用户快速掌握和使用Vim。
1. 打开和创建文件
- vim filename: 打开名为filename的文件,如果文件不存在则创建一个新文件。
- vim +n filename: 打开文件,并且光标定位在第n行。
2. 进入编辑模式
- i: 进入插入模式,可在当前光标位置插入文本。
- I: 在当前行的开头插入文本。
- a: 进入插入模式,光标位于当前字符之后。
- A: 在当前行的末尾插入文本。
- o: 在当前行下方新开一行,并进入插入模式。
- O: 在当前行上方新开一行,并进入插入模式。
3. 保存和退出
- :w: 保存文件但不退出Vim。
- :w! : 如果文件为只读,强制保存文件。
- :w filename: 将编辑的内容保存在名为filename的文件中。
- :wq 或 :x 或 ZZ: 保存并退出Vim。
- :q: 退出Vim。
- :q!: 强制退出并放弃对文件的更改。
4. 查找和替换
- /pattern: 从光标位置开始向下查找字符串pattern。
- ?pattern: 从光标位置开始向上查找字符串pattern。
- n: 在同一方向上重复上一次的查找命令。
- N: 在相反方向上重复上一次的查找命令。
- :%s/old/new/g: 将文件中所有出现的old字符串替换为new字符串。
- :%s/old/new/gc: 同上,但替换前会进行确认。
5. 光标的移动
- h, j, k, l: 分别向左、下、上、右移动光标。
- 0: 移动光标到当前行的开头。
- $: 移动光标到当前行的末尾。
- G: 移动到文件的最后一行。
- ngg 或 nG: 移动到第n行。
- :n: 移动到第n行。
- H: 移动光标到屏幕的顶部。
- M: 移动光标到屏幕的中间。
- L: 移动光标到屏幕的底部。
6. 复制粘贴和剪切
- yy 或 Y: 复制光标所在的行。
- nyy 或 nY: 复制从光标所在的行开始的n行。
- dd: 删除光标所在的行。
- ndd: 删除从光标所在的行开始的n行。
- p: 粘贴之前复制或删除的行。
- x: 删除当前光标下的字符。
- X: 删除光标前的字符。
- D: 删除从光标位置到行尾的文本。
7. 多窗口操作
- :sp 或 :split: 分割窗口。
- :vs 或 :vsplit: 垂直分割窗口。
- :close: 关闭当前窗口。
- :only: 保留当前窗口,关闭其他窗口。
- [Ctrl-w][方向键]: 在窗口间移动光标。
8. 文件管理
- :e path/to/file: 打开一个新文件进行编辑。
- :n: 切换到下一个文件。
- :N 或 :prev: 切换到上一个文件。
- :args: 列出当前编辑的所有文件。
9. 设置和配置
- :set nu: 显示行号。
- :set nonu: 关闭行号显示。
- :set autoindent: 自动缩进。
- :set tabstop=n: 设置制表符占用的空格数。
- :set shiftwidth=n: 设置每次缩进的空格数。
- :set expandtab: 将制表符转换为空格。
- :set smarttab: 智能缩进。
- :syntax on: 开启语法高亮。
- :syntax off: 关闭语法高亮。
10. 其他常用命令
- .: 重复上一次命令。
- u: 撤销上一次命令。
- U: 撤销对当前行所做的所有修改。
- :help [command]: 获取关于命令的在线帮助信息。
Vim的学习曲线较为陡峭,但随着练习和应用,用户可以大幅度提高文本编辑的效率。掌握上述命令是使用Vim进行高效编辑的基础。此外,Vim还支持大量的插件和配置,通过自定义Vim可以进一步扩展其功能,以适应个人的使用习惯和需求。
2639 浏览量
602 浏览量
2008-02-02 上传
206 浏览量

愤怒的可乐
- 粉丝: 6w+
最新资源
- SSM框架实现的员工管理系统功能与开发建议
- STM32MP157 DMA驱动开发与HAL库集成教程
- Max7与openFrameworks实现FFT及OSC示例解析
- Java利用FreeMarker模板实现多表格Word文档自动化生成
- Linux环境下基于Socket的百人聊天室实现
- Swift版自定义上下拉刷新控件的实现与应用
- 快速获取Notepad++安装包的可靠途径
- 自定义星级评分功能的jQuery插件介绍
- Omni Convert插件:实现快速搜索引擎切换的搜索设置
- CL-JSYNC:Lisp语言的JSYNC序列化库
- Python编程实现GIF图片文字添加与编辑
- 基于Node.js和Socket.io的IRC-Webclient实现
- Cocos2d-x 3.0教程:解决小游戏开发中的电脑卡死问题
- Java开发的餐厅点餐系统实现餐单增删功能
- 提升网站SEO效果:一键 Organic Traffic One Click-crx插件
- 打造个性化弹出视图:自定义iOS AlertView教程