【vim小记】vim的高效移动
我还是推荐所有刚入门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的高效移动的更多相关文章
- vscode + vim 全键盘操作高效搭配方案
基础知识 vscode-vim vscode-vim是一款vim模拟器,它将vim的大部分功能都集成在了vscode中,你可以将它理解为一个嵌套在vscode中的vim. 由于该vim是被模拟的的非真 ...
- (大数据工程师学习路径)第二步 Vim编辑器----Vim快速入门
vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截 ...
- [No0000191]7种提高工作效率的Vim操作-Vim使用技巧(6)
Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标 ...
- vim: 搭建vim看代码的环境
使用 vim + ctags + cscope + taglist 阅读源码 http://my.oschina.net/u/554995/blog/59927 vim tab变空格 http:// ...
- vim + DoxygenToolkit.vim环境搭建
1. :DoxLic --->添加版权 2. :DoxAuthor---->文件头 3. :Dox----> 函数注释 安装过程: 1. 创建目录 ~/.vim/pl ...
- 【vim】vim的收藏集
[vim]vim的收藏集 刚接触vim,还木有时间专门研究一下自己的配置,所以暂时贴下网上分享的配置 2019-07-13 14:22:08 无插件的版本 https://my.oschina.net ...
- SpaceVim - 让你的vim变得更加高效和强大
SpaceVim 中文手册 项 目 主 页: https://spacevim.org Github 地址 : https://github.com/SpaceVim/SpaceVim SpaceVi ...
- 【vim小记】自动保存配置
刚接触vim会发现有很多不习惯,其中,不能自动保存当前配置,每次退出要重新配置,很麻烦,好在vim早就为我们想到这些,在看手册的时候,发现里面有session, 这是用户手册的介绍: “会话保存所有 ...
- vim:用vim修改文件编码为utf-8
命令是 :set fileencoding=utf-8如果用vim打开文件时里面有乱码,可能用上面的命令修改文件后无法保存.可以用其他软件打开文件,然后把内容拷贝到vim里再保存就行了.
随机推荐
- websocket简单样例
服务端 var server = require('ws').Server; }); serv.on('connection',function(socket){ socket.send('hello ...
- Djiango-富文本编辑器
借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的.所见即所得的页面.此处以tinymce为例,其它富文本编辑器的使用也是类似的. 在虚拟环境中安装包. pip install ...
- Git学习笔记--实践(三)
文中红色的文字(标为:## 插曲)是在Git学习/实践过程中,我个人遇到的一些问题,每个“## 插曲”之后,都有相应的解决方案. 一.创建版本库 版本库又名仓库,英文名repository,可简单的理 ...
- 使用 DML 自定义调试器输出
调试器标记语言 (DML) 提供了一种机制增强来自调试器和扩展的输出. 与 HTML 类似,调试器的标记支持允许将输出包括显示指令和额外非显示的标记窗体中的信息. 调试器用户界面,WinDbg 等中分 ...
- 28-ESP8266 SDK开发基础入门篇--编写wifi模块TCP 客户端程序(官方API版,非RTOS版)
https://www.cnblogs.com/yangfengwu/p/11432795.html 注:这节实现的功能是WIFI模块作为TCP 客户端,连接咱的TCP服务器,然后实现透传 本来想着做 ...
- 洛谷 P2312 解方程 题解
P2312 解方程 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 [1,m][1,m] 内的整数解(\(n\) 和 \(m\) 均为 ...
- Hdu 5093 Battle Ship
每个海面要么放要么不放,因此可以用二分图匹配, 考虑把同一行内的能互相看到的点放到一个行块里,同一列内能看到的点放到一个列块里,然后每一个行块都可以和该行块里所有海面的列块连边,选了这个行块,就必须选 ...
- 在windows环境下可以裁剪.jpg格式的图片
发现在windows操作系统下,可以利用图片编辑器裁剪.jpg格式的尺寸大小.其四方有四个推子.可以移动.注意点击右方的“确定”按钮.
- Spark-Streaming kafka count 案例
Streaming 统计来自 kafka 的数据,这里涉及到的比较,kafka 的数据是使用从 flume 获取到的,这里相当于一个小的案例. 1. 启动 kafka Spark-Streaming ...
- MSSQL 数据库复制脚本
--新表存在复制数据 insert into 新表 (字段) select 字段 from 旧表 -- 新表不存在复制数据 select * into 新表 from 旧表