Vim光标移动
最近全面转换开发到Mac OS下,用MacVim作为IDE。记录一些Vim基本操作给自己备忘。
此次所说的都是在common-mode(c-mode,在Vim 又名normal-mode,就是刚进入vim,不能输入文字的状态)下的移动,原始的vi 只能在c-mode 移动光标,在insert-mode 只做文字的输入,而不做光标的移动。当然Vim 及elvis 的方向键是不论在那一种mode 皆可移动自如。
基本的光标移动
h | 左,或Backspace 或方向键。 |
j | 下,或Enter 或+(要Shift 键),或方向键。 |
k | 上,或方向键或-(不必Shift 键)。 |
l | 右,或Space 或方向键。 |
Ctrl+f | 即PageDown 翻页(Forward,向前、下翻页)。 |
Crtl+b | 即PageUp 翻页(Backward,向后、上翻页)。 |
同样的,比如20h,就是光标向左移动20字符;20j,光标向下移动20字符;其他类似。
使用 hjkl
键的移动是为了使手不必离开打字区(键盘中央的部位),以加快打字的速度,如果各位不习惯,那就使用方向键吧!其实,一旦习惯了以后,对于编辑工作的效率
会有很大的帮助,而且有许多工作站的vi 只能使用hjkl 的移动方式,因此可能的话,尽量熟悉hjkl 的光标移动。
Backspace 及Space 的移动方式是到了行首或行尾时会折行,但方向键或hl 键的移动则在行首或行尾时您继续按也不会折行。转折换行的功能是Vim 的扩充功能,elvis 无此功能。
jk 及使用方向键的上下移动光标会尽量保持在同一栏位。使用Enter,+,-的上下移动,光标会移至上(下)一行的第一个非空白字元处。
好像有点复杂,各位就暂时使用方向键来移动就简单明白了!等您爱上了Vim 后再来讲究吧。
进阶的光标移动
0 | 是数目字0 而不是英文字母o。或是Home 键,移至行首,(含空白字元)。 |
^ | 移至行首第一个非空白字元,注意,要Shift 键。 |
$ | 移至行尾,或End 键。要 Shift 键。 |
G | 移至档尾(全文最后一行的第一个非空白字元处) |
gg | 移至档首(全文第一行之第一个非空白字元处)。 |
在规则表示式(regular expression)中,^ 是匹配行首,$ 是匹配行尾。
gg 是Vim 的扩充功能,在elvis 或原始vi 中可用1G 来移至档首(是数字1 不是英文字l )。 G 之原意是goto,指移至指定数目行之行首,如不指定数目,则预设是最后一行。
w | 移至次一个字(word)字首。当然是指英文单字。 |
W | 同上,但会忽略一些标点符号。 |
e | 移至后一个字字尾。 |
E | 同上,但会忽略一些标点符号。 |
b | 移至前一个字字首。 |
B | 同上,但会忽略一些标点符号。 |
H | 移至屏幕顶第一个非空白字元。 |
M | 移至屏幕中间第一个非空白字元。 |
L | 移至屏幕底第一个非空白字元。这和PageDown,PageUp 不一样,内文内容并未动,只是光标在动而已。 |
n| | 移至第n 个字元(栏)处。注意,要用 Shift 键。 n 是从头起算的。 |
:n | 移至第n 行行首。或 nG。 |
特殊的移动
) | 移至下一个句子(sentence)首。 |
( | 移至上一个句子(sentence)首。 sentence(句子)是以 . ! ? 为区格。 |
} | 移至下一个段落(paragraph)首。 |
{ | 移至上一个段落(paragraph)首。 paragraph(段落)是以空白行为区格。 |
% | 这是匹配{},[],() 用的,例如光标在{ 上只要按%,就会跑到相匹配的} 上。 |
建议继续学习:
- vim几个小技巧(批量替换,列编辑) (阅读:35894)
- 简明Vim练级攻略 (阅读:20698)
- Vim下的代码自动补全和代码跳转阅读 (阅读:14335)
- 为什么要用 Emacs/Vim,而不是任何其他编辑器 (阅读:12129)
- 在vim(gvim)中运行终端(对,你没有看错,我也没有写反) (阅读:9334)
- vim入门,进阶与折腾 (阅读:9149)
- 让vim在终端下的配色亮起来! (阅读:8559)
- 最近总结的一些技巧(vim,python,svn,fiddler等) (阅读:7029)
- vim的复制粘贴小结 (阅读:6465)
- Vim 中截取部分内容保存到其他文件 (阅读:6318)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:kimi 来源: 平凡的世界
- 标签: Vim 光标
- 发布时间:2011-08-24 14:06:48
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成