Vim enhance part1
NO1 .认识.命令
例 删除man.config中第1到30行的注释
1.光标移到#上,按下x删除
2.按下j将光标移到第二行#上,之后按下.
3.可以看到第2行的#也被删除了因为.就是重复上次命令,而我们上次执行的是删除
4.所以删除1-30的# 我们可以 j.j.j.j.j… 直到删除第30行的#为止.
当然了 也可以为1-30行 添加注释
结合.命令很强大不是吗?
NO2. 查找并手动替换
既然是手动替换那么就需要确认了 经过了vim command handbook的训练 你自然会想到 :%s /old/new/gc
但是既然是upgrade 我将会介绍另一种做法
例: 将文本中的man改为MAN 第7.8行除外

1.光标移动到man上,并按下* 所有的man都会被高亮 //具体的*命令推荐使用:help * 进行查询 类似于unix like上的Manpage


2.n移动到下一个 N移动到上一个 不过本例中用不到只是提一下
3.cw MAN<ESC> 当再次按下.时就会执行执行 cw MAN<ESC>//千万别这时候按 只是举例说明.命令
4.n.n.n.………… 到第7.8行 不需要修改所以不用按. 直到全文修改完毕

这么做其实并不比:%s /old/new/gc 高效和准确而是提供一个思路
如果你善于总结和思考的话会发现O = ko
(我个人使用的是ko因为按键速度更快)
同时, 任何命令结合.命令都将成为强大的工具 而最强大的功能在于这些组合完全是个人的潜力.和乐高积木一个道理(我小时候只玩过山寨版的,不过至少也是积木)
也有人把第4步的 n.n.n… 一个键移动光标,一个键修改 称为.范式(我忘了是哪本书了…)
NO3. 构造可重复性的修改
例 this is a test 光标在is的i上 将句子删除只剩this
最简单的办法当然是一直按x 不过这里要推荐的是d3w或d$
如果修改后还需要做出重复性的动作d3w或是d$和.命令结合或是p命令结合就会方便许多.
而且d3w和d$的按键次数也比x的要少
NO4. 最大程度使用.命令而避免使用次数
4dd d4d 与 dd... (不是省略号而是3个点)
4dd 执行4次删除一行
d4d 删除4行
根据实际使用 这两种一样的 按下u 会一次性恢复4行.
而推荐使用dd...是因为在实际使用中 经常性会多删除一行或少删除一行
这时候多删除一行只要多按一下u 少删除一行只要多按一下.
是不是比要按下u 再重新dnd 要快呢? (n代表你要删的行数)
更重要的在高度集中的编码状态 从657行删除到662行 还是要经过计算的(思路有可能就此被打断)
这显然这与我们把vim训练成肌肉记忆的本能和vim的使用哲学不符. dd.... 显然更高效
NO5.拒绝使用ESC和忘掉大小写转换键
这里指的大小写转换键并不仅仅是capslock.而是切换大小写的按键
很不幸的是由于windows和X86 PC机的诞生. 键盘的阵列也经过变化了.目前我们大部分所用的是巨硬(Microsoft)的US 阵列键盘.而针对unix like系统的键盘也有 例如HHKB和mac键盘 而我个人推荐自己改造GH60 HHKB阵列 ,不过这是另一个话题了.
在Bill Joy最初设计vi的时候 使用的键盘如下图

可以很明显的看到如今的capslock是当年的control而esc在tab的位置
当年使用vi按esc退出当然是非常容易了,而如今esc的距离里键盘很远.而且对于笔记本来说还容易按到F1.实在是非常不方便.当然了 这时候会有”资深”vim专家推荐交换capslock和ESC 不可否认这么切换确实非常快. 但是这么做仍然不是最有效率的做法.同意我怀疑提出这么做的人是否会使用下面我要介绍技巧插入模式的删除,和寄存器(我都怀疑他是否知道寄存器的存在) 而且使用频率极高的ctrl + f 翻页功能不会不用把?(别说你不知道)
我个人目前的做法: 即供参考 这只是一种思路
windows中使用Gvim
capslock交换 右control作为额外的control 右alt改成capslock(在windows系统中也可以容易实现而且不会影响windows的快捷键,因为windows中的快捷键习惯已经将大部分中国人绑架所以作为额外的control比较合适 而右alt基本很少人使用 我个人基本没用过...) 第一篇的文章中我提供有改键软件的下载
Linux
capslock交换control (linux系统的快捷键可以重新学 不会被windows左下角的ctrl而绑架)

这时候肯定会问,咦,怎么退回到普通模式?
Ctrl + [
详细了解请输入:h i_CTRL-[
相比ESC来说,缺点是多了一个按键并不是什么太大的麻烦,只是适应较难.几天就能改正.
但同时也有优点 首先你换来了高效的CTRL+ 快捷键 非常实用. 你避免了ESC依赖症而导致的无法使用他人的Vim (不是按键的问题而是操作习惯被绑架)最重要的 别人也可以在你的机器上工作(键位可以在改回去).如果他是使用ESC的话.
有人会问了 要使用大写怎么办?
而且在实际的编辑工作中很少需要用到大写 如果是一行需要大写 对于我这种vim小白会选择使用gUU 将当前行转换为大写
如果是一个单词呢?
方法1 编辑模式下 <enter> 另起一行 输入单词 退出到普通模式 0光标移动到行首 gUU 大写J将两个合并 当然了这种方式过于极端
方法2 退回到普通模式下按v进入到可视模式 选择单词 输入gU 切换成大写
方法3 刚才推荐的右alt (你这不废话么)
题外话. 如果不喜欢改软件和注册表(需要重启系统)的方法来改键.目前机械键盘应该都带交换capslock和CTRL的功能 (不过这么做windows的下最常用的CTRL+C Ctrl+V 就要重新适应了)
插播一条广告:
推荐2款我正在使用的键盘 可以交换按键不需要刷固件的 ikbc poker2 60%键位 价格大概499 Vim高烧者 强烈推荐

RK 静电容全域45g 价格好像是560时间太久了记不太清了 87键适合喜欢有F功能区和上下左右键的朋友

NO6. 插入模式中的删除 (shell中Bash通用,其他shell没试过 这时候是否觉得投资Vim和linux的学习非常划算呢?因为UNIX世界这些基础的东西基本不会变,贬值的要比巨硬的慢)
Ctrl + h 删除光标前一个字符 = backspace (特别常用,店长推荐)
ctrl + w 删除一个单词
Ctrl + u 删除到行首
NO7. 插入模式中执行一条普通模式命令(店长推荐,尤其是编码过程中)
Ctrl + o
zz (小写)重新绘制屏幕并将光标所在行,显示在屏幕中央(光标位置不变)
z. 重新绘制屏幕并将光标所在行,显示在屏幕中央(光标跳到行首)
处于插入模式而且光标位于屏幕最后一行 想滚屏却又不想离开插入模式
Ctrl + O zz
就是这么任性,高效 普通的编辑器要狂敲回车然后光标再移回来
善用vim的manpage 你会发现更多 :h zb
NO8. 高级可视模式
当以可视模式进行选择时,经常会多选和少选一些内容怎么办? 退出可视模式,重新选?
不需要. 你只需要 按下 o 激活高亮区域的端点 //高亮区域的范围其实是由2个端点界定.
可是模式中 v以光标选择 大写V以行选择 这时候问题来了 如果我想切换呢?
Ctrl + v
显示上次选择的高亮区域 gv (如果上次选择被删除的话显示就会不正常)
这次就先介绍这么多,主要是写文章太麻烦了 (买不起虚拟主机和域名 100块在我这是稀有物种)
今天是光棍节,扫一下支付宝二维码,赞助一下博主买虚拟主机 1块钱不嫌少,1w块也不嫌多.让世界充满爱.

Vim enhance part1的更多相关文章
- 删除rpc01
vim /opt/ltp/runtest/stress.part3 修改/opt/ltp/runtest/stress.part3 删除rpc01: 142 systemctl status gdm ...
- 快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础
上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是W ...
- Vim配置及说明——IDE编程环境
Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...
- spf13-vim – The Ultimate Distribution for Vim Editor
spf13-vim is a cross platform and highly customizable assortment of vim plugins and various resource ...
- vim 高级使用技巧
前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选.其实操作系统只是我们使用的一个工具, windows也好lin ...
- VIM的高级使用
VIM的高级使用 转:http://www.cnblogs.com/itech/archive/2012/02/22/2363111.html 1)一些常用的Vim配置,在~/.vimrc中 syn ...
- 分享一下个人的Vim配置文件
强烈拥护开源精神,高举开源大旗,今天我就分享下我自己结合网上还有自己实际使用配的vimrc,可以给各位参考下,不要见笑哈,具体说明我在rc里写的也很详细,可以具体看下,也希望可以借这个机会能多认识认识 ...
- vim常用操作技巧与配置
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
- VIM学习二: VIM配置代码及效果图
vim学习及插件 参见:http://www.cnblogs.com/caixu/p/6337926.html .vimrc配置 "***************************** ...
随机推荐
- 微信环境支付宝服务窗环境app手机浏览器pc端混合判断
//微信环境 if(userAgent.match(/micromessenger/) == 'micromessenger'){ }//支付宝服务窗环境else if(userAgent.match ...
- CF962D Merge Equals
思路: 不必每次都找最小的值进行合并,从前往后扫一遍的过程中能合并就一直合并. 实现: #include <bits/stdc++.h> using namespace std; type ...
- Mac Outlook 15 连接office365 一直跳出登录框的问题
解决: 比如 原登录用户名密码为 abc@xxx.com 密码:***** 改一下outlook帐号中的登录用户名为:xxx.com\abc 密码为原来密码,尝试连接,连接状态会连上,但过会儿又提 ...
- 关于php的问题
$polling_items = db_fetch_assoc("SELECT * FROM poller_item WHERE rrd_next_step<=0 ORDER by h ...
- 解决jenkins插件列表为空的问题
可能是由于Jenkins的更新网站被QIANG,因此,请使用 http://mirror.xmission.com/jenkins/updates/update-center.json 来进行更新
- [Python學習筆記] 抓出msg信件檔裡的附件檔案
想要把msg信件檔案的附件抓出來做處理,找到了這個Python 模組 msg-extractor 使用十分容易,但是這個模組是要在terminal裡執行,無法直接打在IDLE的編輯器上 所以稍微做了修 ...
- xcode uml 工具
https://github.com/PaulTaykalo/objc-dependency-visualizer ./generate-objc-dependencies-to-json.rb -d ...
- 使用sersync实现实时同步实战
场景需求: 应用程序会在机器192.168.2.2 /usr/local/news目录中生成一些数据文件,现在需要实时同步到主机192.168.3.3/usr/local/www/cn/news中,同 ...
- VMware 彻底删除虚拟机操作系统的方法
方法一 首先,都需要点击左边的虚拟机列表,选中你要删除的操作系统 点击VMwae上方的虚拟机-管理-从硬盘删除. 方法二 右键左侧列表中要删除的系统-移除. 然后在硬盘上找到其所在文件夹,直接按SHI ...
- Java异常归纳
1.使用Tomcat运行“播报哥架构”出现的两大异常 1.1 监听器异常 详细情况:部署好Maven项目,启动TOMCAT提示如下错误 java.lang.ClassNotFoundExcepti ...