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 <文件名> 分屏显示另一文档(竖直分割)
Vim 入门的更多相关文章
- Vim入门基础
公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础.在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来.特点是偏向基础,但对入门者来说足够全面 ...
- Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门
距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...
- Vim入门操作整理
根据小甲鱼的vim入门视频整理,供查阅 移动指令:上下左右 k j h l 翻页: ctrl + b ctrl + f 保存退出:ZZ 普通模式:vim fileName 首次进入的就是普通模式 从 ...
- Vim 入门教程
Vim 入门教程 转载请保留以上信息 Vim 的教程相对比较零散,系统的教程比较少,我也阅读过不少教程,走过很 多弯路.借着 Vim-china 组织组建这一契机,整理下自己学习过的内容, 分享给大家 ...
- vim入门过程
先下载了一本VIM的用户手册. 看到可以使用vimtutor(VIM的入门教程,很不错,由浅入深)作为入门. Unix系统中,请在命令行输入:vimtutor,进入教程. MS-Windows系统中, ...
- [vim] vim入门
1. 概述 工欲善其事 必先利其器.vim是非常好用的文本编辑器,可以将它看作是vi的进阶.绝大多数Unix系统都会内置vi编辑器,vi是文本编辑器,vim是程序编辑器.相比vi,它可以根据文件的类型 ...
- Vim入门学习之Vim解析
Vim解析... ----------------------- 首先你要会从官网上下载你想要的Vim版本: 官网: http://www.vim.org/==================== ...
- Vim入门教程
尽管网上有成打的Vim在线教程,但是要么艰深晦涩,要么太过肤浅.本教程的目标让每个阶段都有斩获,从理解它的哲学(将和你终身相伴)到超越现在编辑技巧,成为其中的牛人. 简单来说,本教程的学习方式将使你终 ...
- Maxiee的Vim入门日记(4)——安装windows下的Cscope
Maxiee今天又学到了一个插件——Cscope.Cscope 是一款用于查看大型工程中的代码的软件.它使用方便,支持快速查找 C Symbol.function 等在工程中所有出现的位置,而不用自己 ...
- Vim 入门:基础
为工作或者新项目学习足够的 Vim 知识. -- Bryant Son 我还清晰地记得我第一次接触 Vim 的时候.那时我还是一名大学生,计算机学院的机房里都装着 Ubuntu 系统.尽管我在上大学前 ...
随机推荐
- CSP2019心路历程
--人常说无论做什么都不要忘了初心,但如果一个人从来没有"应该"去忘了初心,又从何谈起的初心. CSP开考前,风吹在脸上,一些淡淡的回忆化作影子碎在地上:是到了一个令人感伤的路口了 ...
- 【BZOJ1095】【ZJOI2007】捉迷藏
前言 好恶心的一道题,代码写了2.5h,调试调了5h+,局部重构了n遍. 题意 一棵树上的节点有黑白两色,初始为黑,支持修改颜色,查询最远黑点对.$n<=10^5,m<=5*10^5$ 题 ...
- 关于读取Com口数据时,Com口的名字的两种读法。
1,直接调用SerialPort类中的GetPortNames()方法. string[] portList = System.IO.Ports.SerialPort.GetPortNames(); ...
- 用于C#的极速序列化/反序列工具 MessagePack
MessagePack 比MsgPack-Cli快10倍,并且优于其他C#序列化器.MessagePack for C#还内置了对LZ4压缩的支持 - 一种极快的压缩算法.对于性能追求很重要,特别是在 ...
- A1128 | 逻辑想象能力、简洁高效美观的代码、memset的使用情景
写了三遍才AC,这真是对智商极大的侮辱 C++代码: #include <stdio.h> #include <memory.h> #include <math.h> ...
- 洛谷P1352 没有上司的舞会题解
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- access us
Ubuntu下设置 chrome的SwitchyOmega Wiki (简体中文)wiki Linux安装配置客户端及开机自动启动 运维 安装 配置 搭建服务以及配置多用户 安装和配置 一键搭建 服务 ...
- setns 切换命名空间,/proc 目录与 Namespace
http://man7.org/linux/man-pages/man2/setns.2.html int setns(int fd, int nstype); Given a file descri ...
- Java编程思想之四控制执行流程
程序必须再执行过程中控制它的世界,并做出选择.在Java中,你要使用执行控制语句来做出选择. 4.1true和false 所有条件语句都利用条件表达式的真或假来决定执行路径. Java不允许使用数字作 ...
- C++内联函数(C++ inline)详解
使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销. 函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还 ...