Vim 入门
Vim 简介
Vim 是字符模式下的一种文本编辑器,不需要图形界面,它是 Vi 的一个发展。
Vim 与常见文本编辑器的区别在于,它有四种模式,“正常模式”“插入模式”“命令模式”“可视模式”。
插入模式是最正常的文本。
打开
使用 vim <filename>
来打开文件,或新建一个文件。
Vim的四种模式
Vim 打开后进入正常模式,通过一些命令可以进入插入模式。
通过输入:
进入命令模式,光标会移动到窗户左下角,这种模式下,可以对文件和环境做一些操作。
通过输入 v
或 V
进入可视模式,可以选择一部分文本,然后对其进行操作。
通过 Esc 键从其他模式返回正常模式。
当不知道处在什么模式的时候,可以多敲几次 Esc 来返回正常模式。
一些命令
这里只罗列一些基本操作所需要的命令,如果想了解 Vim 全部命令,可以输入 vimtutor
这些命令都是在正常模式中输入的,其实相当一部分命令可以当做快捷键,这样便于理解。
所有的命令最好在 Vim 下进行尝试。
插入
这一部分命令只使用了键盘上的一个按键,直接敲击即可,可以认为它们是一些快捷键。
这些命令使得 Vim 从正常模式进入插入模式。
这里把大写和小写放在了同一行,应该知道它们是两种命令,功能上有所相似。
i I 在光标前插入 在光标所在行头插入
a A 在光标后插入 在光标所在行尾插入
o O 在光标所在行下一行插入新行 在光标所在行前一行插入新行
移动
在正常模式下移动光标所用的命令。
在一些版本的 Vim 中,在插入模式下可以使用方向键来移动光标,比如 NOI Linux。
h j k l 分别为 左 下 上 右
gg 到文件头
G 到文件尾
<n>G 移动到第<n>行,例如移动到第 10 行,敲击键盘上对应按键 10G 即可
ctrl+f 下一页(相当于 page down)
ctrl+b 上一页(相当于 page up)
zz 光标所在行居中
文件
这一部分命令,首先输入 :
,光标将出现在屏幕最下方,输入指令后敲击 Enter 来执行。这部分命令是可以组合的,如输入 :wq
,可以在后面添加 !
来强制执行,如 :wq!
。
:w 写入
:q 退出
编辑
x 删除当前字母
dd 剪切当前行
gg=G 整理全文代码缩进
V 选择部分行(从光标所在行开始,通过jk移动选择)
d 剪切
y 复制
p 粘贴,在正常模式
u 撤销
ctrl+r 反撤销
环境设置
Vim 中有一些属性通过设置来调整。
:set ai 自动缩进
:set nu 显示行号(number)
:set ts=4 TAB 的宽度为 4
:set expandtab 将TAB替换为空格
.vimrc
如果不想每次打开 Vim 的时候都设置一遍环境,可以写一个 .vimrc 文件,每次打开 Vim 的时候都会先执行一次。
在 ~/
下创建 .vimrc
文件,输入例如 set ai
,即省略 :
。
更多命令
环境设置
:set fdm=indent 设置按缩进分层折叠代码
:set sw=4 设置宽度为 4 的缩进为一层,用于折叠
折叠
zm 关闭所有折叠
zM 关闭所有折叠及其嵌套的折叠
zr 打开所有折叠
zR 打开所有折叠及其嵌套的折叠
za 关闭、打开光标下的折叠
zA 关闭、打开光标下的折叠及其嵌套
[z 到当前打开折叠的开始
]z 到当前打开折叠的结束
显示
:vsplit <文件名> 分屏显示另一文档(竖直分割)
最新文章
- 【WP 8.1开发】如何处理摄像头翻转的问题
- ios基础之 透过页面跳转来认识 Strong 与 Weak
- 记录C++学习历程
- VS2010/MFC编程入门之五(MFC消息映射机制概述)
- BCL和CoreFx的区别
- js复制内容到剪贴板
- php树形结构数组转化
- KMP Algorithm 字符串匹配算法KMP小结
- Shiro框架配置-applicationContext里面的(仅提供借鉴)
- GUI 设计
- django项目添加utf-8编码支持中文
- laravel框架基础(2)---laravel项目加载机制
- CodeForces912E 折半+二分+双指针
- layui 导出表格数据
- 拿到iframe页面里面的变量及元素的方法
- css笔记 - 张鑫旭css课程笔记之 vertical-align 篇
- mongodb与关系型数据库优缺点比较
- 【HNOI2015】落忆枫音
- ajax+json+ashx实现一个页面多个tab的分页
- SDN openflow 学习小得
热门文章
- 自建 ca 及使用 ca 颁发证书
- ERA-Interim数据学习
- kali linux 局域网攻击(一)
- 拦截RestTemplate的请求
- 多浏览器书签同步插件EverSync
- Salt-Formulas的使用
- Research Guide: Pruning Techniques for Neural Networks
- android : 解决android无法使用sun.misc.BASE64Encoder sun.misc.BASE64Decoder 的问题, 无需添加rt.jar
- golang程序编译时提示“package runtime: unrecognized import path ";runtime"; (import path does not begin with hostname)”
- xgboost 算法总结