原文地址:Vim实战指南(二):光标移动技巧

Introduction

提升Vim/vi的打字效率的一个技巧就是快速移动光标。或许你觉得这不值一提,用hjkl或者上下左右也能移动,不过相信我,我下面要介绍的移动光标技巧绝对物超所值。

按屏移动

在命令行模式下,vi的整屏移动命令可以按以下方式速记:

Ctrl+F :forward:同PageDown键,向下移动整屏
Ctrl+B: backward:同PageUp键,向上移动整屏
Ctrl+D: down:向下移动半屏
Ctrl+U: up:向上移动半屏
z[Enter]:使光标指向的当前行成为屏幕的首行
z.:使光标指向的当前行成为屏幕的中间行
z-:使光标指向的挡前行成为屏幕的尾行
H: home:使光标移动到当前屏幕的首行
M: middle:使光标移动到当前屏幕的中间行
L: last:使光标移动到当前屏幕的尾行
[Enter]:使光标移动到下一行的第一个字符
+:同[Enter],使光标移动到下一行的第一个字符
-:使光标移动到上一行的第一个字符

同样,你可以利用vi的组合命令特性,采用数字+字符的方式来移动,如

3H: 3 lines below home line:使光标移动到当前屏幕的首行的下数第三行
3L: 3 lines above last line:使光标移动到当前屏幕的尾行的上数第三行

按字词移动

除了按屏移动,你也需要按字/词来移动,同样在命令行模式下,vi的整屏移动命令可以按以下方式速记:

e: move to end of word:移动到字/词的尾部(包括标点)
E: move to large end of word,移动到字/词的尾部(忽略标点)
(:移动到句首(根据?.!等标点符号)
):移动到下一句
{:移动到段首(根据空行)
}:移动到下一段
[[:移动到章首
]]:移动到下一章

同样,你可以利用vi的组合命令特性,采用数字+字符的方式来移动,如

3)):移动到后三句

按搜索词移动

搜索移动应该是最常使用的移动方式,在命令行模式下输入'/'来启动搜索

/assignment[Enter]:在文中搜索assignment
/programming[Enter]:在文中搜索programming

此处有一个技巧,如果你想搜索an,你可以在an前后各敲一个空格,搜索

/ an [Enter]

当你希望继续搜索时,输入

n:vi将跳到下一个匹配的搜索的地方
N:vi将跳到上一个匹配的搜索的地方
/:从光标位置向后搜索
?:从光标位置向前搜索

此处有一个技巧,如果你觉得搜索的时候屏幕跳动太快,可以输入

:set nowrapscan

搜索的高级用法这里先卖个关子,以免太过复杂,学习曲线太陡,后面我再罗列
如果你只希望在当前行搜索,可以用下面的方法

fa: find a:查找当前行光标后的字符a
Fa:查找当前行光标前的字符a
ta: 同fa,区别在于查找到时光标在a的前面
Tx:同Fa,区别在于查找到时光标在a的前面
;:继续从光标位置向后搜索
,:继续从光标位置向前搜索

按行列号移动

在日常编程中,经常需要直接根据行号来跳转,如编译错误、日志行数等
跳转前,你需要打开行号,输入

:set nu

下面是移动命令,利用vi的组合命令特性,采用数字+字符的方式来移动

3G:移动到第三行
3|:移动到第三列
``:移动当跳转前的行,按搜索词移动也可用
'':同``,区别在于光标跳转到行首

最后,你可以输入Ctrl+G来查看当前行列号,以及文本的总行数

Summary

上述的基本命令一定要熟记于心,加强练习。不要觉得命令太多,快速移动光标绝对是提升编辑速度的利器。

  • 1月28日发布

转载于:https://www.cnblogs.com/dasn/articles/5240979.html

转:Vim实战指南(二):光标移动技巧相关推荐

  1. Vim实战指南(二):光标移动技巧

    原文地址:Vim实战指南(二):光标移动技巧 Introduction 提升Vim/vi的打字效率的一个技巧就是快速移动光标.或许你觉得这不值一提,用hjkl或者上下左右也能移动,不过相信我,我下面要 ...

  2. Vim实战指南(一):基础编辑命令

    原文地址:Vim实战指南(一):基础编辑命令 Introduction Vim和Emacs作为两大神级文本编辑器各有利弊,本实战指南不加讨论的介绍Vim. 本实战指南不是教你按照Vim的键位图来编辑文 ...

  3. Kotlin实战指南二十:flow

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/117370700 本文出自[赵彦军的博客] 文章目录 往期精彩文章 flow 是啥 ...

  4. Gstreamer应用开发实战指南(二)

    一.​什么是GStreamer? GStreamer 是一个用于创建流媒体应用程序的框架.基本设计来自俄勒冈研究生院的视频管道,以及DirectShow的一些想法. GStreamer的开发框架可以编 ...

  5. Kotlin实战指南二:变量、常量、静态常量

    转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87811333 本文出自[赵彦军的博客] Kotlin初体验二:变量.常量.静态常 ...

  6. maven 打的包在哪_Maven实战指南:“打包”的技巧

    [IT168 技术]"打包"这个词听起来比较土,比较正式的说法应该是"构建项目软件包",具体说就是将项目中的各种文件,比如源代码.编译生成的字节码.配置文件.文 ...

  7. MongoDB实战指南(二):索引与查询优化

    数据库保存记录的机制是建立在文件系统上的,索引也是以文件的形式存储在磁盘上,在数据库中用到最多的索引结构就是B树.尽管索引在数据库领域是不可缺少的,但是对一个表建立过多的索引会带来一些问题,索引的建立 ...

  8. 【fabric实战指南二】Fabric v1.0 部署过程原理详解

    2019独角兽企业重金招聘Python工程师标准>>> 区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地 作者:吴寿鹤 来源:区块链兄弟 原文链接:http:// ...

  9. Vim快捷键(二):光标移动

    Vim快捷键(二):光标移动

最新文章

  1. LeetCode-35. Search Insert Position
  2. 菜单权限管理怎么实现_Java第58讲——极简的权限管理实现方案
  3. rest spring_Spring REST:异常处理卷。 2
  4. STL模型文件修改软件magics 21.0的安装及使用
  5. CART 分类决策树
  6. 当我们电脑上的Microsoft Office2003/2007/2010无法卸载时怎么处理?
  7. 事业单位新税改的个人所得税纳税筹划
  8. C++ Const 初步总结(《C++程序设计语言》读后感)
  9. 使用Arcgis制作的专题地图
  10. 查看mysql 版本号 (3种)
  11. 现代交换技术学习笔记
  12. php注册登录详解_实例讲解php用户注册与登录页面
  13. Motivated Word (2)
  14. 0902 团队销售漏斗
  15. 实现C#和Python高效率混合编程
  16. 6、RH850 F1 AD转换功能和配置
  17. Cesiumjs(一)原生cesiumjs集成进入vue框架
  18. [云炬商业计划书阅读分享]美国耐克鞋电子商务策划书
  19. pyhton:运算符重载(期权Greeks相加)
  20. 合成大西瓜:开年第一爆是怎么火的?

热门文章

  1. Animation 动画的制作和脚本的实现
  2. ESXI6.7网卡驱动封装之离线封装-(转载)
  3. 想要更好更快地完成工作,这5款PC软件能够帮你轻松实现
  4. JPA 异常Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
  5. python能输出 10000 以内所有素数
  6. tp1900芯片对比7621a_貌似很多人看不起MTK,其实MTK7621A已经很给力了。
  7. 计算机专业大学新生笔记本,计算机专业大一新生,有什么合适的笔记本推荐
  8. MFC使用winpcap 抓包 pcap_compile使用
  9. 微信公众平台服务号发送模板消息并跳转小程序
  10. 小马智行元气大伤,独立自动驾驶公司路在何方?