断断续续的使用VIM也一年了,会的始终都是那么几个命令,效率极低

前几个星期把Windows换成了Linux Mint,基本上也稳定了下来

就今晚,我已经下定决心开始新的VIM之旅,顺便写一系列的笔记和总结

还是那句话,我只是个新人,代码也没写过多少行,但我一直在默默努力自学着

所以,还请老鸟们看看笑笑就行了,不要鄙视我,我很脆弱……

这是俺写的《轻快的VIM系列》第一节,每一节都会不断更新,加入更多技巧在里面

VIM新手们加油,咱一起总结,一起努力练习……

基础

字符移动

k            上移                k
h 左移 h l
l 右移 j
j 下移

你也可以使用键盘上的方向键来移动,但这么做h j k l的存在就失去了意义

之所以使用h j k l来控制方向,其主要目的是让你的手不离开键盘中心,从而提高效率

tips:在命令前加上数字代表命令执行次数,如:5k,表示上移5行

单词移动

W w            移动到下一个单词开头
E e 移动到下一个单词结尾
B b 倒退到上一个单词开头

需要注意的是,E会忽略标点符号,如:I‘m,e会当成两个单词,E则不会

同样,在命令前加上数字代表执行次数,如:2w,表示往下移动2个单词

开头我也许会多说几遍,因为这个技巧很重要

整行移动

0            移动到行首
$ 移动到行末
+ 移动到下一行开头
- 移动到上一行开头

这里需要注意的是+ -和上面的j k有什么不同之处

j k也是移动到上一行和下一行,但它们移动的是光标所在的位置

+ -不管你的光标在何处,总是移动到下一行或上一行的行首

进阶

滚屏

Ctrl+f            往前滚动一整屏
Ctrl+b 往后滚动一整屏
Ctrl+d 往前滚动半屏
Ctrl+u 往后滚动半屏 Ctrl+e 往后滚动一行
Ctrl+y 往前滚动一行

看似比较多,但是可以根据键盘的位置来进行记忆,并且下面两个也不常用

上面的滚屏都有一个共同点,就是会改变光标的位置,且屏幕也在改变

如果想让光标维持在原来的位置实现滚屏请看下面

用z调整光标

z<Enter>        将光标所在行移动到屏幕顶端
z. 将光标所在行移动到屏幕中间
z- 将光标所在行移动到屏幕低端

tips:980z<Enter>可以将第980行移动到屏幕顶端

好吧,有时候你其实不想滚屏,你只想在当前屏幕中移动

请往下看

在屏幕中移动

H            移动到屏幕顶端的行
M 移动到屏幕中央的行
L 移动到屏幕底端的行 nH 移动到屏幕顶端往下的第n行
nL 移动到屏幕顶端往上的第n行

据我猜测这三个字母应该是HIgh、Middle和Low的缩写,其实挺好记的

多练习几遍就行了,需要注意的是:这里只是光标的位置变化,和上面两种不同

tips:你可以用+ -和j k实现同样的位置变化,只不过要操作多次而已

+ -和j k的区别忘了吗?往上看看吧

在当前行移动

^            移动到当前行的第一个非空格处
n| 移动到当前行的第n列

这里的^与上面的0通常情况下表示的位置是一样的

而n|,个人感觉还没有h l方便,慢慢的数出行数还不如直接按着h l 左右移

根据文本块移动

所谓的文本块也就是句子、段落、小节等

(            移动到当前句子开头
) 移动到下一个句子开头
{ 移动到当前这一段开头
} 移动到下一段开头
[[ 移动到当前这一节的开头
]] 移动到下一节的开头

其中,VIM以? . !等符号来标记一个句子

空白行来标记一个段落

用节宏来标记一个节(节宏是什么我还没搞清楚)

根据行号来移动

Ctrl+g            显示当前行信息
nG 转至第n行
G 转至文本末尾
gg         移至文本开头

如果你不知道当前是多少行的话就可以用Ctrl+g来查看

如果想转到第800行,可以用800G

其实z命令也可以做到,并且把光标移动到第一行

tips:``反引号可以返回到使用G之前的位置

最新文章

  1. windows 7(32/64位)GHO安装指南(系统安装篇)~重点哦!!~~~~
  2. [WCF编程]12.事务:事务传播
  3. Access restriction: The type &#39;RSACipher&#39; is not API
  4. Python爬虫学习笔记——防豆瓣反爬虫
  5. ios视图切换之push与present混用
  6. linux---Vim命令集
  7. HDU1173
  8. 手机上的ROM与RAM
  9. Spring声明式事务总结
  10. 轻量级.NET CORE ORM框架Insql使用教程
  11. WindowManager$BadTokenException: Unable to add window permission denied for this window type
  12. 假装会python--爬取贴吧正文
  13. Xcode7 运行iOS10以上系统(10.1、10.2、10.3)解决Could not find Developer Disk Image
  14. Could not read symbols解决方法
  15. vim 缩进设置
  16. 使用Docker、CoreOS、Mesos部署可扩展的Web应用
  17. MySQL提权之user.MYD中hash破解方法
  18. 做考试系统用到的关于onbeforeunload一些兼容性问题
  19. C语言关系运算符
  20. To Support High-Density Retina Displays

热门文章

  1. .Net Core 学习(二)上篇
  2. Django models 常用字段类型
  3. Go Server Record
  4. 联想VIBE Shot(Z90-7/全网通) 解锁BootLoader
  5. 连接Oracle数据库帮助类
  6. Java Web_过滤器
  7. C# 判断字符串是否左包含
  8. commons.dbutils 的使用列子
  9. https证书安装无效的主要原因
  10. 切换原生appium里面H5页面