VIM实用命令大全及操作技巧
需积分: 23 105 浏览量
更新于2024-10-28
收藏 58KB 7Z 举报
资源摘要信息:"VIM常见命令总结"
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可以进一步扩展其功能,以适应个人的使用习惯和需求。
2018-11-12 上传
2010-02-03 上传
2011-03-04 上传
2008-02-02 上传
2011-11-27 上传
愤怒的可乐
- 粉丝: 6w+
- 资源: 29
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍