我还是推荐所有刚入门vim的朋友先去用vimtutor练习,然后去看vim的帮助文档,写的十分仔细,而且可以马上实战,见效很快,以下的很多示意图都是vim帮助文档里的例子,我觉得很好,就拿出来了。

vim之所以高效的原因是因为它有一套高效的移动机制,作为学vim,可以说这一部分你不得不看,这可以大大减少了文章内移动的击键数,而且脱离的鼠标的束缚,让双手基本不用离开键盘操作。

一、VIM的基本移动

vim的基本操作无非是上(j)下(k)左(h)右(l)  ,这个大家很熟悉了,当然,键盘的上下左右也是可以用的,但是相信我,等你用惯它自己这个,你会离不开它

      j
h        l
     k

vim的所有指令基本都可以加数字,表示执行次数,也就是说,移动指令也支持:

10h     左移动10格
 20j 上移20行

二、横向特殊移动

vim的高效从这里才正式体现:

1、首尾移动 ☆☆☆☆

0		移动至行第一个字符
^ 移动至行第一个非空白字符
$ 移动至行最后一个字符        ^
<------------
.....This is a line with example text
<----------------- --------------->
0 $ (这里 "....." 表示空白字符)

以上命令比较重要,另外,如果你的文字区显示得比较小,一行会被折叠成几行,你可能会用到以下的命令,以下的命令全是以屏幕为参考而不是实际的行

g0		至屏幕行第一个字符 (当行回绕时和 "0" 不同)
g^ 至屏幕行第一个非空白字符 (当行回绕时和 "^" 不同)
g$ 至屏幕行最后一个字符 (当行回绕时和 "$" 不同)
gm 至屏幕行中

2、词移动☆☆

w          跳到下个单词开头
b           向前跳到上个单词开头
e           跳到下个单词词尾
ge         向前跳到上个单词词尾           b b b 2b b
      <----<--<-<---------<---
     This is a line with example text
      --->-->->--------------------->
         w w w 3w      This is a line with example text ~
             <-<--- -----> ---->
            ge   ge        e    e

同样,这个里面也有几个其他命令,上面命令的大写,跳过的单位均是以空白字符分割的字串,很好记



W        跳到下个字串(以空白字符分割)
B         跳到上个字串(以空白字符分割)
E    跳到下个字串尾部(以空白字符分割)
gE   向前跳到上个字串词尾

3、查找移动☆☆☆

f          向下查找某个字母出现的位置
F         向上查找某个字母出现的位置
t          向下查找某个字母出现的位置前
T         向上查找某个字母出现的位置前                           Fh
                     <---------------------
     To err is human. To really foul up you need a computer.
           -------->------------------->
                 fh         fy       To err is human. To really foul up you need a computer.
                    <------------               ---------------->
                               Th                    tn

这里就一个提示,这里可以用' ; ' 进行重复操作,比如:按下fe,跳到err的e,再次按下;  ,跳到really的e, 再次按下;  跳到need的e

4、匹配移动☆☆☆☆

匹配移动在代码块中使用非常多,而且效率特别高,用这个命令可以轻松的在(),{  }   [  ] 中跳转,它帮你找匹配的括号,方便的很

%       跳到匹配的括号     (这个命令也可适用于 [] 和 {}。(可用 'matchpairs' 选项定义))

                                %
    <----->
if (a == (b * c) / d) ~
<---------------->
%

注意:光标不在一个有用的字符上,"%" 会先 正向 查找找到一个,再按一次会移动到它的匹配处(比如在下面光标在=处,首先匹配的是(b * c)的左括号,再是它的右括号

		if (a == (b * c) / d) ~
        +--->--->
%

三、纵向特殊移动

1、全局跳转☆☆☆☆

gg          跳到文件首
G 跳到文件尾
NG 跳到特定N行(代码调试常用)
N%        跳到大约N%的位置

2、视野内移动☆☆☆

H          跳到视野内顶部
M         跳到视野内中间
L          跳到视野内下面    +-------------------------------+
H --> | text sample text |
| sample text |
| text sample text |
| sample text |
M --> | text sample text |
| sample text |
| text sample text |
| sample text |
L --> | text sample text |
+-------------------------------+

四、附加:其他操作

1、滚屏

滚屏主要是阅读文档有用,有滚半屏,一屏,一行(这个就不说了,意义不大)

CTRL-U        向上滚动半屏,文字下移动  UP
CTRL-D        向下滚动半屏,文字上移动  DOWN
CTRL-B         向后滚动一屏,文字下移动  Backward
CTRL-F         向前滚动一屏 ,文字上移动  Forward

2、不滚屏移动光标

移动中的一个常见问题是,当你用 "j" 向下移动的时候,你的光标会处于屏幕的底部,你可能希望,光标所在行处于屏幕的中间。这可以通过 "zz" 命令实现。

zz           光标移动到屏幕中间
zt            光标移动到屏幕顶部  (top)
zb           光标移动到屏幕底部(bottom)
 
+------------------+ +------------------+
| some text | | some text |
| some text | | some text |
| some text | | some text |
| some text | zz -->| line with cursor |
| some text | | some text |
| some text | | some text |
| line with cursor |  | some text   |
+------------------+ +------------------+

【vim小记】vim的高效移动的更多相关文章

  1. vscode + vim 全键盘操作高效搭配方案

    基础知识 vscode-vim vscode-vim是一款vim模拟器,它将vim的大部分功能都集成在了vscode中,你可以将它理解为一个嵌套在vscode中的vim. 由于该vim是被模拟的的非真 ...

  2. (大数据工程师学习路径)第二步 Vim编辑器----Vim快速入门

    vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截 ...

  3. [No0000191]7种提高工作效率的Vim操作-Vim使用技巧(6)

    Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标 ...

  4. vim: 搭建vim看代码的环境

    使用 vim + ctags + cscope + taglist 阅读源码  http://my.oschina.net/u/554995/blog/59927 vim tab变空格 http:// ...

  5. vim + DoxygenToolkit.vim环境搭建

    1. :DoxLic --->添加版权 2.   :DoxAuthor---->文件头 3.  :Dox----> 函数注释     安装过程: 1. 创建目录  ~/.vim/pl ...

  6. 【vim】vim的收藏集

    [vim]vim的收藏集 刚接触vim,还木有时间专门研究一下自己的配置,所以暂时贴下网上分享的配置 2019-07-13 14:22:08 无插件的版本 https://my.oschina.net ...

  7. SpaceVim - 让你的vim变得更加高效和强大

    SpaceVim 中文手册 项 目 主 页: https://spacevim.org Github 地址 : https://github.com/SpaceVim/SpaceVim SpaceVi ...

  8. 【vim小记】自动保存配置

    刚接触vim会发现有很多不习惯,其中,不能自动保存当前配置,每次退出要重新配置,很麻烦,好在vim早就为我们想到这些,在看手册的时候,发现里面有session,  这是用户手册的介绍: “会话保存所有 ...

  9. vim:用vim修改文件编码为utf-8

    命令是 :set fileencoding=utf-8如果用vim打开文件时里面有乱码,可能用上面的命令修改文件后无法保存.可以用其他软件打开文件,然后把内容拷贝到vim里再保存就行了.

随机推荐

  1. js去除数组中重复的数字

    var arr = [2,1,4,3,2,4,2,3,4,2,6,5,5] var obj = {}; var arrNew = []; for(var i=arr.length-1;i>=0; ...

  2. 数据库连接的配置文件activation节点

    在数据库连接连接不上的时候,一定要查看一下数据库的配置文件,<activeByDefault>这个节点比较关键,表示的是默认的连接数据库节点,当然配置文件中只能有一个这样的节点.否则是会报 ...

  3. LeetCode 1046. Last Stone Weight

    原题链接在这里:https://leetcode.com/problems/last-stone-weight/ 题目: We have a collection of rocks, each roc ...

  4. LOJ P10013 曲线 题解

    每日一题 day38 打卡 Analysis 这道题运用的是三分,就是说具有一定的单调性,找最大最小值,然后和二分基本类似,就是说特性就是说当前两个点比较,较优的点和最优点在相对了较差点的同侧,就是说 ...

  5. JAVA常用处理数据

    price(350)*(10/100) price.multiply(maxPayIntegrateRate.divide(new BigDecimal("100.0")) max ...

  6. 一个禁用mac内置键盘的方法

    一个禁用mac内置键盘的方法 强大的 karabiner, 非常好用. 可以直接在有外接键盘连接的情况下, 禁用掉内置键盘 另外一个方法是启用mac的 鼠标键, 感觉用处不是很大, 修饰健并没有被禁用 ...

  7. 转载:SVD

    ComputeSVD        在分布式矩阵有CoordinateMatirx, RowMatrix, IndexedRowMatrix三种.除了CoordinateMatrix之外,Indexe ...

  8. lintcode-1174.下一个更大的元素 III

    题目描述: 1174. 下一个更大的元素 III 给定一个32位整数n,用同样的数字组成新的32位整数,使得它要比n大,返回最小的这样的数.如果不存在这样的整数,返回-1. 算法思路: 首先将这个数转 ...

  9. SDN第七次上机作业

    1.补充并运行basic代码 任务是实现基础的交换机转发数据包功能 补充后代码如下: /* -*- P4_16 -*- */ #include <core.p4> #include < ...

  10. 帝国CMS 7.5编辑器从WORD中粘贴过来无法保留格式和图片的解决办法

      配置过滤js文件 首先打开  \editor\plugins\pastefromword\filter\default.js  在文件的最后部分又如下代码(修改前的代码),也可以搜索CKEDITO ...