Vim光标定位
*定位到指定行n:
输入"nG".
或输入"ngg".
或输入":n"
这里,n就是指定的行的行号.注意,有时候G=gg.
*跳到屏幕顶部:
输入“H”.
这里,停在第一个非空字符上。加一个数字N,是指距窗口顶部的行数(如'NH'正数第N行)
*跳到屏幕底部:
输入“L”.
这里,停在第一个非空字符上。加一个数字,是指距窗口底部的行数(如'NL'倒数第N行)
*跳到屏幕中间:
输入“M”.
这里,停在第一个非空字符上。
*跳到文件首:
输入"gg".
*跳到文件尾:
输入“G”.
*光标移至句尾:
输入")".
*光标移至句首:
输入"(".
*光标移至段落开头:
输入"}".
*光标移至段落结尾:
输入"{".
*跳到行末尾:
输入“$”.
*跳到行首:
输入“^”.
或输入“0”.
这里输入'^'是移动到首的第一个非空白字符。
*向后跳到整文件最近距离的单词末尾:
输入“e”.
*向前跳到整文件最近距离的单词首部:
输入“b”.
*跳到整文件下个单词首部:
输入“w”.
**行内移动
以下均可可以加上数字N前缀表示移动N次(如'3fc'表示执行'fc'3次。)
*移动到光标右面第一个字符c的后面:
输入"fc".
*移动到光标右面第一个字符c的前面:
输入"tc".
*移动到光标左面第一个字符c的前面:
输入"Fc".
*移动到光标左面第一个字符c的后面:
输入"Tc".
*重复前一次输入的f, t, F, T命令:
输入";".
例如刚才是'fc',输入';'相当于还是'fc'。
*会反方向重复前一次输入的f, t, F, T命令:
输入",".
例如刚才是'fc',输入','相当'Fc'。
**
**在较长行内的移动:
这里做一个小小的约定:较长的一行如果占据了屏幕的多行,那么这一行我们把它叫“长行”,屏幕上的一行叫做“屏幕行”。所以对于一个'长行'需要有多个'屏幕行'来显示。
*在“长行”中移动到下一个“屏幕行”:
输入"gj".
*在“长行”中移动到上一个“屏幕行”:
输入"gk".
*在"长行"中移动到当前"屏幕行"首:
输入"g^".
*在"长行"中移动到当前"屏幕行"尾:
输入"g$".
这里,如果一行超过了屏幕宽度,会显示在屏幕的多行,显示的虽然是多行,但是实际上还是一行,在输入上下移动的时候虽然是进入了上一行或者下一行,但是往往会呈现出在屏幕中一下跳过n行的样子。g$, g^, gj , gk 在行超过长度时好用。 j,k下上移动的是文本中的一行,当文本一行的长度超过屏幕的一行的时候,j,k移动的时候在屏幕上可能是移动多行。这时候可以用gj,gk来移动屏幕的一行而不是文本的一行。 同理g^和g$是屏幕的行首行尾,而不是文本的行首行尾。
**
*按百分比来跳转,跳转到文件50%处:
输入"50%".
这里利用%实现按百分比来跳转,如果想跳到75%处,输入“75%”。
**翻页
可以跟数字前缀N表示执行的倍数,翻页可以用[PageUP]/[PageDown].
*向下翻页:
输入“[Ctrl]f”.
*向上翻页:
输入“[Ctrl]b”.
*向下翻半页:
输入“[Ctrl]d”.
*向上翻半页:
输入“[Ctrl]u”.
**
**相对于光标的翻页
效果是行向相应的方向滚动了,光标仍然在原来的行,好像是将这个文本拖动了一样.
*光标所在行移动窗口的顶端:
输入"zt".
*光标所在行移动窗口的中间:
输入"zz".
*光标所在行移动窗口的底端:
输入"zb".
*将第n行滚至屏幕顶部:
输入“nzt”。
*将第n行滚至屏幕底部:
输入“nzb”。
*将第n行滚至屏幕中部:
输入“nzz”。
**
*设置书签:
输入“ma”.
这样,会在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。只能记录当前文件里的书签,退出vim后再次进入将不会保留这些书签, 书签只是当前文件中的一个位置,但是我实践一下发现,设置完了书签之后,保存文件,这样也把书签保存了。
*到书签a处:
输入"`a".
注意,这个不是单引号,它一般位于大部分键盘的 1 的左边。
*到书签a所在的行:
输入"'a".
这里用的是单引号,将跳到书签所在的行。
*到上次编辑文件的地方:
输入"`.".
这个命令很有用,而且你不用自己去标记它,注意这里输入的是反引号`,精确到点。
*到上次编辑文件所在行:
输入“'.”
注意这里是精确到行,输入的是引号‘。
*回到最后一次插入状态返回的位置:
输入"'^".
或输入"`^".
这里'.精确到行,`.精确到点(行+列)。
*查看当前所有书签的列表:
输入":marks".
**搜索相关:
*搜索一个字符串:
输入“/string”。
这里"string"就是将要被搜索的字符串,会自动跳到光标后面第一个"string"处。
*在上次搜索的基础上向前搜索:
输入“N”。
*在上次搜索的基础上向后搜索:
输入“n”.
*逆向搜索一个字符串:
输入“?string”。
这里"string"就是将要被搜索的字符串,会自动跳到光标前面第一个"string"处。之后使用的“:n”和“:N”命令方向也会相反了。
*列出查找的历史记录:
输入"q/".
或输入"q?".
这会在vim窗口最下面打开一个新的窗口,列出你的查找历史记录可以选择。
*向下完全匹配当前光标下单词:
输入“*”。
之后也可以按'n'继续向下查找。
*向上完全匹配当前光标下单词:
输入“#”。
之后也可以按'N'继续向上查找。
*向下匹配包含当前光标单词的字符串:
输入“g*”。
*向上匹配包含当前光标单词的字符串:
输入“g#”。
**
*跳到匹配的另一半括号:
输入“%”。
这样可以查找配对的括号,即: )、]、}。
*打开当前光标单词下的文件:
输入“gf”。
这里,假设当前的光标在相应的文件名上面,例如“main.c”等等。
*切换到上次打开文件:
输入“[Ctrl]^”。
这里,例如我们输入了gf进入某个文件,可以输入[Ctrl]^来回到刚才的文件,这个命令只能在当前和上一个文件之间切换,不能后退多步。
*后退到某个曾经浏览过的位置:
输入"[Ctrl]o".
流行的文本编辑器通常都有前进和后退的功能,可以在文件中曾经浏览过的位置之间来回移动。在vim中多次输入"[Ctrl]o"可以执行后退。
*前进到某个曾经浏览过的位置:
输入"[Ctrl]i".
或输入"[Tab]".
这样,如果执行过后退,在vim中多次输入"[Ctrl]o"可以执行前进。
Vim光标定位的更多相关文章
- UITextField限制中英文字数和光标定位以及第三方输入限制问题
先自定义一个UITextField的子类HLNavTextField,在控制器里调用子类的- (void)limitHansLength:(int)hans otherLength:(int)othe ...
- input长度随输入内容动态变化 input光标定位在最右侧
<input type="text" onkeydown="this.onkeyup();" onkeyup="this.size=(this. ...
- vi/vim 光标移动命令(转载)
转载至:https://www.cnblogs.com/Jacklovely/p/6015037.html vi/vim 光标移动命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一 ...
- input输入框的光标定位的问题
input输入框的光标定位的问题 在给input输入框赋值的时候,或者在我之前写模拟下拉框js组件的时候,时不时会碰到光标的小bug问题,比如键盘中的 上移或者下移操作,在浏览器中光标会先移到最前端, ...
- js实现类似微信网页版在可编辑的div中粘贴内容时过滤剪贴板的内容,光标始终在粘贴内容后面,以及将光标定位到最后的方法
过滤剪贴板内容以及定位可编辑div光标的方法: <!DOCTYPE html><html lang="en"><head> <meta ...
- UITextView 光标定位
在使用UITextView的时候, 如何在光标的位置插入字符 或者 图片? 以下Demo为你解答: 应用背景:键盘自定义emoji表情 #pragma mark - KVO - (void)obser ...
- vi/vim 光标移动命令
vi/vim 光标移动命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列 w:光标以 ...
- 可编辑div,将光标定位到文本之后
类似qq回复一样,某人评论之后,在对评论进行回复之后,将光标定位到文本之后: function set_focus() { el=document.getElementById('guestbook_ ...
- JS控制光标定位,定位到文本的某个位置
这是一个数字密码,要能够智能的跳转到文本的某个位置,就需要通过JS来控制跳转! 1.onkeyup监听 <input class="put" id="number- ...
随机推荐
- GJM : 【C# 高性能服务器】完成端口、心跳的高性能Socket服务器 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- GJM :用JIRA管理你的项目(二)JIRA语言包支持及插件支持 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- wpf框架模型分析
一.MVVM模式介绍: 在网上看过很多的MVVM中各块的介绍,感觉很混乱.找到如下的描述感觉很合理,也很好理解(https://msdn.microsoft.com/en-us/library/gg4 ...
- 如何在没有安装微软Excel环境下操作Excel文件?
在以前接触的项目中,由于很多客户对微软Excel的操作比较熟练,客户经常要求系统支持对Excel文件的读写.用.NET传统方法对Excel进行读写时,往往会涉及到不同版本兼容的问题,导致在本地测试一切 ...
- 推荐12款实用的 JavaScript 书页翻转效果插件
Flipbooks(书页)或者页面翻转已成为在网页设计中最流行的交互动画之一.他们可以用在 Flash,网页或者在线杂志中.使用书页动画或者页面翻转的网页设计效果方便人们展示他们的产品,作品或者其它内 ...
- jQuery的eq方法
定义和用法eq() 方法将匹配元素集缩减值指定 index 上的一个. 语法.eq(index) 其中的index :整数,指示元素的位置(最小为 0).如果是负数,则从集合中的最后一个元素往回计数. ...
- Java Web 三层架构详解
java 三层架构ssh 一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring的 IoC来管理应用的 所有bean,包括struts2的 action,充分发 ...
- 手把手系列:实现Nat地址转换
1.实验目的: 掌握内网中的主机C1连接到Internet时,通过NAT实现私有全局地址转换. 2.实验拓扑: 3.实验步骤: 步骤一:给主机C1和C2配置IP地址.子网掩码和网关.如图: C1: ...
- SharePoint 2013 在母版页中插入WebPart
最近QQ群里有朋友问,如何在母版页里插入自己开发的WebPart.其实很简单,母版页中虽然不允许插入WebPartZone,但是Designer就可以插入WebPart:或者手动注册,然后插入WebP ...
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...