*定位到指定行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光标定位的更多相关文章

  1. UITextField限制中英文字数和光标定位以及第三方输入限制问题

    先自定义一个UITextField的子类HLNavTextField,在控制器里调用子类的- (void)limitHansLength:(int)hans otherLength:(int)othe ...

  2. input长度随输入内容动态变化 input光标定位在最右侧

    <input type="text" onkeydown="this.onkeyup();" onkeyup="this.size=(this. ...

  3. vi/vim 光标移动命令(转载)

    转载至:https://www.cnblogs.com/Jacklovely/p/6015037.html vi/vim 光标移动命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一 ...

  4. input输入框的光标定位的问题

    input输入框的光标定位的问题 在给input输入框赋值的时候,或者在我之前写模拟下拉框js组件的时候,时不时会碰到光标的小bug问题,比如键盘中的 上移或者下移操作,在浏览器中光标会先移到最前端, ...

  5. js实现类似微信网页版在可编辑的div中粘贴内容时过滤剪贴板的内容,光标始终在粘贴内容后面,以及将光标定位到最后的方法

    过滤剪贴板内容以及定位可编辑div光标的方法: <!DOCTYPE html><html lang="en"><head>  <meta ...

  6. UITextView 光标定位

    在使用UITextView的时候, 如何在光标的位置插入字符 或者 图片? 以下Demo为你解答: 应用背景:键盘自定义emoji表情 #pragma mark - KVO - (void)obser ...

  7. vi/vim 光标移动命令

    vi/vim 光标移动命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列 w:光标以 ...

  8. 可编辑div,将光标定位到文本之后

    类似qq回复一样,某人评论之后,在对评论进行回复之后,将光标定位到文本之后: function set_focus() { el=document.getElementById('guestbook_ ...

  9. JS控制光标定位,定位到文本的某个位置

    这是一个数字密码,要能够智能的跳转到文本的某个位置,就需要通过JS来控制跳转! 1.onkeyup监听 <input class="put" id="number- ...

随机推荐

  1. Genymotion无法下载OVA文件

    百度 下载Genymotion离线OVA文件(http://pan.baidu.com/s/1jIe5pjC ) 将OVA离线文件放到这个目录下:C:\Users\Administrator\AppD ...

  2. 七个结构模式之适配器模式(Adapter Pattern)

    定义: 将一个接口转换为客户需要的另外一个接口,使接口不兼容的类型可以一起工作,也被称为包装器模式(Wrapper Patern). 结构图: Target:目标抽象类,客户所需要的接口. Adapt ...

  3. ConcurrentHashMap原理分析

    当我们享受着jdk带来的便利时同样承受它带来的不幸恶果.通过分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,安全的背后是巨大的浪费,而现在的解 ...

  4. iCheck.js

    一.iCheck:http://www.bootcss.com/p/icheck/ 1.选择一个颜色主题,网上有,有了一个肤色主题,然后就是把这个肤色主题的css文件复制到iCheck文件夹里面 2. ...

  5. 15款帮助你实现响应式导航的 jQuery 插件

    对于我们大多数人来说,建立一个负责任的布局中最困难的方面是规划和导航的实现.由于没有真正经得起考验的通用解决方案,您可以使用的菜单设计风格将取决于正在建设的网站类型. 无论你正在建设什么类型的网站,在 ...

  6. ScrollMagic – 酷毙了!超炫的页面滚动交互效果

    ScrollMagic 是一款 jQuery 插件,它让你可以像使用进度条一样使用滚动条.如果你想在特定的滚动位置开始一个动画,并且让动画同步滚动条的动作,或者把元素粘在一个特定的滚动位置,那么这款插 ...

  7. Node.js Web 开发框架大全《路由篇》

    这篇文章与大家分享优秀的 Node.js 路由(Routers)模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  8. windows.open()、close()方法详解

    windows.open()方法详解:         window.open(URL,name,features,replace)用于载入指定的URL到新的或已存在的窗口中,并返回代表新窗口的Win ...

  9. 总结CSS3新特性(Animation篇)

    动画(Animation),是CSS3的亮点.//之一 通过animation属性指定@keyframe来完成关键帧动画; @keyframe用法: @keyframes name { 0% { to ...

  10. Oracle12C相关

    1.jar包安装到MVN本地库 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1 ...