vim 光标快速移动技巧总结(vim高级操作的基础)from csdner 亓磊

以下说法,仅个人观点。
vim移动方式,并非只有hjkl这样简单粗暴的方式。熟悉更多移动光标的方式,对其它类似复制、change、delete等操作都有意想不到的用处。比如d/abc表示删除至abc字符之前,解释一下就是/abc表示查找关键词abc,d表示删除。总之,光标快速移动是进阶vim最基本最重要的。
命令虽然多,但是用十次以上,就能熟练了,关键是有花时间学习的意义。

简单的移动(适合小范围移动)
hjkl
用熟了,相对其它编辑器或者鼠标来说,确实挺方便的。
配合数字。
2j表示向下移动2行

利用查找(适合大范围移动)
/hello
向后查找关键词hello,回车就到了后面第一个hello处。
?hello
向前查找关键词hello
*向后查找当前光标处的单词
#向前查找当前光标处的单词

还有一个行内快速移动,利用f命令搜索某字符方式(适合行内移动)
f表示向后移动到某字符
比如fa表示向后移动到字符a处
Fa表示向前移动到字符a处。
这个操作,我认为不如/?查找用的爽,因为/?可以查找完整的单词。

利用w,b,以word为单位进行移动,类似hjkl(适合小范围移动)
同理,配合数字。
2w表示向后移动2个word;
2b表示向前移动2个word;
2e表示向后移动2个word,但是会移动到word字符之后。
如果想忽略标点符号的word,就用大写
W
B
E

移动到行首行尾(适合行内移动)
^表示移动到行首第一个word,即行首有空格的情况,不会移动到空格之前,而是移动到空格之后,第一个word之前;
0表示移动到行首;即行首有空格的情况,会移动到空格之前;
表 示 移 动 到 行 末 ; 即 行 末 有 空 格 的 情 况 , 会 移 动 到 空 格 之 后 ; 如 果 想 移 动 到 行 末 最 后 一 个 非 空 白 的 字 符 处 , 就 输 入 命 令 表示移动到行末;即行末有空格的情况,会移动到空格之后; 如果想移动到行末最后一个非空白的字符处,就输入命令 b。一般来说,写代码,行末不会有空格存在的。这条应用没多大意义。

移动到文本开头和文本结尾(适合大范围移动)
gg表示移动到文本开头;
G表示移动到文本结尾

利用行号移动到某一行(适合大范围移动)
:123表示移动到第123行

翻页(适合大范围移动)
ctrl+f表示向下翻页
ctrl+b表示向上翻页

利用标记mark命令
ma表示标记该行为a;包括第几列的信息,都在标记a里。
‘a表示跳转到标记a处;会跳转到标记a的行首。单引号’
`a表示跳转到标记a处;会跳转到标记a的行,包括第几列。更精准。按键在波浪号处。

快速移动技巧基本就这些吧。
网上还有括号移动的,段落移动的,其实用上述技巧就够了。如果没有特别有意义的,不如熟练掌握上述技巧。
比如移动到上一个{,那么输入命令?{
熟悉快速移动技巧后。让我们想想,对于其它操作行为有很多可以举一反三的地方。
比如复制一部分文字,从time到tutor之间的内容。
The approximate time required to complete the tutor is 25-30 minutes.
最基本的就是用hjkl移动到time处,v命令,用hjkl移动到tutor,选中后,按y。命令结束。
熟悉快速移动后,/time回车,y/tutor。命令结束。
同理,如果delete,一样。/time回车,d/tutor。命令结束。
同理,如果change,一样。/time回车,c/tutor。命令结束。

change命令,适合修改代码。很有用。具体介绍可以输入命令:help c
比如cc表示删除本行并开始重写。删除本行同时执行insert模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值