Vim,极简使用教程,让你瞬间脱离键鼠切换的痛苦
注:看大家对Vim仇恨极大,其实它只是一种文本操作方式,可以减少键鼠的切换,从而让编辑文本的操作更迅捷。并不等同于IDE,在我看来,它们是两个是包含关系,IDE可以有Vim编辑模式。Vim或许可以通过一些插件实现部分IDE的功能,但不能说Vim是IDE。
写之前,脑子里觉得可以最常用操作的来熟悉Vim,内容不多,写了一半确发现,即使是最常用的操作,讲完也要写好多,已经不能叫什么极简教程了,不过既然写了,就这样吧
都说Vim很难学,是的,相对于鼠标来讲,肯定是超难学了。但它的好处真的非常多,特别是对于敲代码的同学。关于这些问题,今天就不讨论了,这里主要说的是,只要记住小小的一部分操作,就可以很轻松的使用Vim,仍然可以极大的提高敲代码的效率哦。
网上很多介绍Vim的文章,都在介绍它强大的操作,其实加大了学习的难度,我简单的总结了一下,要使用Vim只需要记住这么几个操作:
1、操作模式
2、移动光标
3、复制/粘贴
4、删除
其实只要掌握好这几点,熟练一下,就可以轻松应对了。当然要很好的适应日常敲代码的工作,还得对目录和文件的操作熟悉,当做第二部分内容吧
1、目录操作
2、文件操作
每一项有几个操作,稍微熟悉一下,就可以很好的使用了,多用一会儿,立刻就会发现,放弃鼠标的快感。
操作模式
1、移动模式。这是我取的名字,文档上叫normal模式,不够形象,所以我叫它移动模式,一听就懂了
ESC:从其它模式退出,进入移动模式,最好按两下
2、编辑模式。文档上叫insert模式,还是编辑比较好。进入编辑模式有几种方式,适应用不同的场景,都是方便操作的,各按键如下:
i :在光标当前位置前进入
a:在光标当前位置后进入
shift + i:在行首位置进入
shfit + a:在行尾位置进入
o:在光标所在行下方新开一行进入
shift + o:在光标所在行上方新开一行进入
3、选择模式。文档上叫什么忘了,不过选择也很好理解。选择模式有两种:
v:进入选择文本模式。从当前光标位置开始,移动光标,之间的文本都会是选中状态。这期间,可以使用移动光标的操作进行移动。
ctrl + v:进行特殊操作模式。也是我取的名字,原来叫块操作模式,什么是块?无法理解。它最有用的操作是给多行加上统一的首或尾,如:可以在选中的所有行首加上注释符,也可以在选中的所有行尾加上分号等。同样可以使用移动中的到行首或是到行尾进行操作。
移动
1、行间移动
j:下移一行
k:上移一行
gg:移到文档第一行
shift + g:移到文档最后一行
shift + h:移到当前屏的第一行
shift + m:移到当前屏的中间行
shift + l:移到当前屏的尾行
:行号:移到对应行号的行
ctrl + d:向下翻页
ctrl + u:向上翻页
特别说明(好理解的就不说了,说说不太好懂的)
当前屏:就是vim中显示出来的部分,未显示出来的部分不算在里,它里面上中下位置的移动,也就是在看得见的部分进行。
:行号:这个操作可以分三部分:
1、shift + : 进入输入模式。
2、输入行号。
3、回车。
光标就会跳到输入行号的行上。
2、行内移动(都是小写字母)
h:左移一位
l:右移一位
w:跳到下一个词的词首
e:跳到当前词的词尾
b:跳到当前词的词首,如果光标本身就在当前词的词首,则跳到前一词的词首
shfit + ^:跳到行首(非空白字符)
shift + $:跳到行尾
f字符:跳到下一个相同字符的位置。之后按;可以继续跳向下一个相同字符的位置
shift + f字符:跳到上一个相同字符的位置。同上,之后按;可以继续跳向下一个相同字符的位置,只是方向和上面是相反的。
特别说明:
f字符:操作分两步:
1、按f
2、按一个字符
这样光标会直接跳到当前光标之后对应按的字符的第一个出现位置(好乱),举个例子:
my name is onlyfu.
当标在第一个字符m上,这时先按f,再按o,光标就会跳到o的位置。如果按f后按n,光标就会跳到之后出现的第一个n的位置,也就是name的n上,这是如果按;,光标就会跳到第二个n,也就是onlyfu的n上,;可以继续点,如果还有n就会继续跳过去。
shift + f字符:和f字符是一样的,只是是向前跳,而不是向后跳,也就是一个反方向操作。
当然,还有一些移动的方法,以上的操作已经够用了,这里就不讲了。
复制/粘贴
1、复制一行
yy:复制光标所在行
2、复制多行
yj:复制光标当前行和其下一行,共两行
yk:复制光标当前行和其上一行,共两行
y:行号:复制渔村当前行到对应行号之间包括对应行号行,共多行
其实用得多的只有yy,复制多行同样可以使用复制选中内容的操作来实现
3、复制选中内容
v移动光标y:复制选中的内容。这其实是三步操作:
1、按v键,进入选择模式
2、移动光标,使用移动的方法来移动,行间,行内的操作都是可以的
3、按y键,复制所有选中内容,并进入移动模式
4、粘贴
p:将复制内容粘贴出来。粘贴有两种情况:
1、如果是整行的复制,粘贴会在当前光标行的下一行粘贴出来,这样会把之前的下面所有行顺序的往下移
2、如果复制的不是整行,只是行内或行间字符,粘贴会在妆前光标位置直接插入复制内容,不会新建行。
这两点要特别注意,不然复制粘贴不会如你所愿
删除
删除和复制是同理的
1、删除一行
dd:删除光标所在行
2、删除多行
dj:删除光标所在行及其下一行,共两行
dk:删除光标所在行及其上一行,共两行
d:行号d:删除光标所在行及对应行号之间,包括对应行号的所有行,共多行
注意,删除操作,会同时复制被删除的内容,这样就可以有移动行的操作,比如,想把第3行移到第5行,那就先删除第3行,到第4行上按粘贴。
好吧,以上就是最简的说明,也写了这么多,后面的目录和文件的操作放到下次再讲。Vim就入门稍难,只要静下来按着上面的操作一会儿,相信,你一定会爱上它的。
Vim,极简使用教程,让你瞬间脱离键鼠切换的痛苦的更多相关文章
- Git 极简入门教程学习笔记
Git 极简入门教程 http://rogerdudler.github.io/git-guide/index.zh.html 测试用 https://github.com/xxx/BrnShop. ...
- 极简python教程02:基础变量,删繁就简
python极简教程已经开赛,如果错过说明可以回翻: 极简python教程:赛前说明 借这个机会,我再讲讲我的教程和其他网上的教程的区别: 1 我分享的内容,是我在工作中会高频使用的语法,是精华内容 ...
- 极简python教程:快速入门好方法
大家好,我是测试奇谭的作者风风. 其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的快速教程,他们的痛点同大多数自学编程语言的人一样,遇到了这些问题: 网络上的信息太多,良莠不 ...
- 极简Node教程-七天从小白变大神(一:你需要Express)
如果说用一句话来概括Node那就是:它开启了JavaScript服务器端语言. Node系列的文章并不会从一开始长篇概论的讲Node的历史,安装,以及其他很琐碎的事情.只会专门介绍关于Node或者准确 ...
- 极简估值教程——第一篇 速判估值与PEG的推导
来自盛京剑客的雪球原创专栏 一.极简速判估值怎么判? 很简单.简单到粗暴. 用PEG PEG=PE/(g*100)=1.0 什么意思? PE市盈率,g未来收益增长率,PEG为1.0合理估值,大于1.0 ...
- 极简Node教程-七天从小白变大神(二:中间件是核心)
当我们只引入express时,前述的那些功能都是没有启用的.那么,如何将这些功能添加进来呢?express通过其中间件机制实现了这些功能的管理.每一个中间件对应一个功能,而中间件可以是第三方库,也可以 ...
- Windows下使用Vim极简入门
0.下载与安装 在vim官网下载 1.Vim常见的几种模式: 一般模式:主要用于浏览,不能随意删除.修改等.按Esc进入该模式. 插入模式:类似平常我们打开记事本后所在的模式.在命令模式下按i进入. ...
- 极简Photoshop 教程
本文通过创建一个iPhone应用的启动界面来介绍常用的Photoshop 用法. 1,以下参数创建一个新图像 宽度:1242像素,高度:22208像素,分辨率:401,背景内容:透明,其它默认 2,建 ...
- WordPress基础:极简安装教程
1.下载WordPress 2.将解压后的文件夹,放到网站根目录,并重命名为你喜欢的目录如:w, 3.重命名文件wp-config-sample.php 为 wp-config.php,并进行配置 4 ...
随机推荐
- Mysql数据库的使用总结之Innodb简介(一)
最近在对开发的软件的服务器部分制作安装包,但服务器部分需要有mysql数据库的支持.因此,采用免安装版的mysql策略:将mysql数据库需要的文件在安装程序中进行设置和打包即可.但也遇到了很多 ...
- ecshop调用后台指定广告位下所有广告循环
ecshop本身的广告调用规则是:对某个广告位下的广告列表随机显示其中一条. 而我们有时需要将某个广告位下的所有广告全部显示出来,那么如何处理呢,下面就自己做了一个函数: \includes\lib_ ...
- request response
request 和 response 这两个对象是出现在service方法中.service方法是用来接收请求处理请求,完成响应的. 接受请求指的就是request对象 完成响应指的就 ...
- CentOS 默认进入图形界面与文本界面
查看/etc/inittab文件,得到以下信息: # inittab is no longer used when using systemd.## ADDING CONFIGURATION HERE ...
- VC++ 实现简单的桌面截图
使用了EasyX图像库,使用方法请参考:VC++ 制作一个简易的控制台时钟应用 简单的桌面截图代码: ///////////////////////////////////////////////// ...
- Nginx与Apache的比较
Nginx与Apache的比较 Nginx相对于Apache的优点 轻量级.同样起web服务,比apache占用更少的资源和内存 抗并发.nginx处理请求是异步非阻塞,而apache则是阻塞型.在高 ...
- 站点SEO优化日记之设置目标关键词
一.怎样确定关键词? 根据百度指数,选择搜索指数较高的作为候选关键词.一个关键词的搜索结果中,若大部分都为非首页链接,则该关键词可在短时间内通过优化获得好的排名,可选择此类关键词作为目标关键词. 二. ...
- Spring事务管理
Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作.今天一起学习一下Spring的事务管理.Spring的事务管理分为声明式跟编程式.声明式就是在Spring的配置文件中进行相关配置 ...
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- intellij idea 插件 ideaVim 用法
intellij idea 插件 ideaVim - Genji_ - 博客园http://www.cnblogs.com/nova-/p/3535636.html IdeaVim插件使用技巧 - - ...