轻快的vim(一):移动
断断续续的使用VIM也一年了,会的始终都是那么几个命令,效率极低
前几个星期把Windows换成了Linux Mint,基本上也稳定了下来
就今晚,我已经下定决心开始新的VIM之旅,顺便写一系列的笔记和总结
还是那句话,我只是个新人,代码也没写过多少行,但我一直在默默努力自学着
所以,还请老鸟们看看笑笑就行了,不要鄙视我,我很脆弱……
这是俺写的《轻快的VIM系列》第一节,每一节都会不断更新,加入更多技巧在里面
VIM新手们加油,咱一起总结,一起努力练习……
基础
字符移动
k 上移 k
h 左移 h l
l 右移 j
j 下移
你也可以使用键盘上的方向键来移动,但这么做h j k l的存在就失去了意义
之所以使用h j k l来控制方向,其主要目的是让你的手不离开键盘中心,从而提高效率
tips:在命令前加上数字代表命令执行次数,如:5k,表示上移5行
单词移动
W w 移动到下一个单词开头
E e 移动到下一个单词结尾
B b 倒退到上一个单词开头
需要注意的是,E会忽略标点符号,如:I‘m,e会当成两个单词,E则不会
同样,在命令前加上数字代表执行次数,如:2w,表示往下移动2个单词
开头我也许会多说几遍,因为这个技巧很重要
整行移动
0 移动到行首
$ 移动到行末
+ 移动到下一行开头
- 移动到上一行开头
这里需要注意的是+ -和上面的j k有什么不同之处
j k也是移动到上一行和下一行,但它们移动的是光标所在的位置
+ -不管你的光标在何处,总是移动到下一行或上一行的行首
进阶
滚屏
Ctrl+f 往前滚动一整屏
Ctrl+b 往后滚动一整屏
Ctrl+d 往前滚动半屏
Ctrl+u 往后滚动半屏 Ctrl+e 往后滚动一行
Ctrl+y 往前滚动一行
看似比较多,但是可以根据键盘的位置来进行记忆,并且下面两个也不常用
上面的滚屏都有一个共同点,就是会改变光标的位置,且屏幕也在改变
如果想让光标维持在原来的位置实现滚屏请看下面
用z调整光标
z<Enter> 将光标所在行移动到屏幕顶端
z. 将光标所在行移动到屏幕中间
z- 将光标所在行移动到屏幕低端
tips:980z<Enter>可以将第980行移动到屏幕顶端
好吧,有时候你其实不想滚屏,你只想在当前屏幕中移动
请往下看
在屏幕中移动
H 移动到屏幕顶端的行
M 移动到屏幕中央的行
L 移动到屏幕底端的行 nH 移动到屏幕顶端往下的第n行
nL 移动到屏幕顶端往上的第n行
据我猜测这三个字母应该是HIgh、Middle和Low的缩写,其实挺好记的
多练习几遍就行了,需要注意的是:这里只是光标的位置变化,和上面两种不同
tips:你可以用+ -和j k实现同样的位置变化,只不过要操作多次而已
+ -和j k的区别忘了吗?往上看看吧
在当前行移动
^ 移动到当前行的第一个非空格处
n| 移动到当前行的第n列
这里的^与上面的0通常情况下表示的位置是一样的
而n|,个人感觉还没有h l方便,慢慢的数出行数还不如直接按着h l 左右移
根据文本块移动
所谓的文本块也就是句子、段落、小节等
( 移动到当前句子开头
) 移动到下一个句子开头
{ 移动到当前这一段开头
} 移动到下一段开头
[[ 移动到当前这一节的开头
]] 移动到下一节的开头
其中,VIM以? . !等符号来标记一个句子
空白行来标记一个段落
用节宏来标记一个节(节宏是什么我还没搞清楚)
根据行号来移动
Ctrl+g 显示当前行信息
nG 转至第n行
G 转至文本末尾
gg 移至文本开头
如果你不知道当前是多少行的话就可以用Ctrl+g来查看
如果想转到第800行,可以用800G
其实z命令也可以做到,并且把光标移动到第一行
tips:``反引号可以返回到使用G之前的位置
轻快的vim(一):移动的更多相关文章
- 轻快的vim(四):修改
我想每个Coder都深刻的明白,修改这一操作在代码的世界里是多么重要 与其说修改,无非就是删除了再插入,但VIM把这两者结合的很有效率 闲话少说,让我们再次使用这轻快的VIM在code上起舞 字符替换 ...
- 轻快的vim(二):插入
上一节我们讲到了VIM中的移动,既然已经能够在屏幕和光标间游刃有余了 那么,现在就来谈谈插入命令 不知道有多少VIM新手和我当年(去年)一样,信誓旦旦的以为只有i可以插入 唉,现在想想都觉得可笑,都是 ...
- 轻快的VIM(五):复制
操作相同文本的时候复制尤其有效,在Windows中我们都习惯了先用鼠标选择文本 而Vim下则不用那么麻烦,你甚至可以使用可视模式操作,但这里先略过 我在这一节主要说说命令模式下的复制 在讲复制之前我要 ...
- 轻快的VIM(三):删除
这一节我们来看看删除,删除命令比较简单,不过要使删除更有效率 你需要配合我们第一节中讲的各种移动命令 字符删除 x 删除光标所在处字符 X 删除光标所在前字符 这里没有什么可注意的地方,但需要说明一下 ...
- VIM移动
VIM移动 断断续续的使用VIM也一年了,会的始终都是那么几个命令,效率极低 前几个星期把Windows换成了Linux Mint,基本上也稳定了下来 就今晚,我已经下定决心开始新的VIM之旅,顺 ...
- VIM 插入
不知道有多少VIM新手和我当年(去年)一样,信誓旦旦的以为只有i可以插入 唉,现在想想都觉得可笑,都是Windows下的编辑器用多了的结果 鼠标一点,妈妈再也不用担心我的文本插入了……悲剧! 好了,让 ...
- VIM学习(转)
原文:http://www.cnblogs.com/nerxious/archive/2012/12/21/2827303.html 断断续续的使用VIM也一年了,会的始终都是那么几个命令,效率极低 ...
- 如何创建Vim Dotfile?
Dotfile是电脑系统里的隐藏文件,它是专门给更高级的用户,如开发者.程序员或工程师使用的,让他们用来调整系统.如何创建Vim-Dotfile? 可以参考以下步骤: 1. 首先,你要检查一下.vim ...
- 玩转Vim 编辑器
一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...
随机推荐
- 小白写的一个ASP.NET分页控件,仅供娱乐
无聊,第一次写博客,自己动手写了一个分页控件.由于我是新手,有很多地方写得不够好,希望各位大牛多多指正.哈哈哈 /// <summary> /// 分页控件 /// </summar ...
- JavaScript 浏览器事件解读
1. 事件基本概念 事件是指在文档或者浏览器中发生的一些特定交互瞬间,比如打开某一个网页,浏览器加载完成后会触发 load 事件,当鼠标悬浮于某一个元素上时会触发 hover 事件,当鼠标点击某一个元 ...
- JavaScript(基于react+dva)
变量声明 const 和 let:分别表示常量和变量 模板字符串 const user = 'world'; console.log(`hello ${user}`); // hello world ...
- 【Oracle】Rman备份策略
1. 查看可设置参数 RMAN> show all; RMAN configuration parameters for database with db_unique_name DRZ are ...
- C#自动缩进排列代码的快捷键 c# 代码重新排版 变整齐
C#自动缩进排列代码的快捷键: ctrl + k + d 1.小技巧, 可以把最后一个}去掉, 重新写下,就可以达到排版的效果. 2.快捷键:编辑-高级-设置文档的格式 快捷键Ctrl+E,D,设置 ...
- 【技术累积】【点】【java】【19】访问权限
java中的四种访问权限 范围如下表 权限 类内 同包 不同包子类 不同包非子类 Public ✔️ ✔️ ✔️ ✔️ 默认(Default) ✔️ ✔️ ️ Protected ✔️ ✔️ ✔️ P ...
- 【sqli-labs】 less3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)
实质上和less1没有多大区别,看懂了一样走流程 提交参数 加单引号 http://localhost/sqli/Less-3/?id=1' 观察报错,看near 和 at 的引号之间内容 '1'') ...
- PyCharm for Mac 调整字体大小
网上的教程大多已过时,那个路径根本找不到,于是就有了本文. 前言 以前用 Sublime 时,直接快捷键CMD+[+/-](CMD加加号或减号)直接调整字体大小,非常方便,后来用 VSCode,字体大 ...
- :before和:after结合使用
<div class="slider-block" id="block" style="left: 15.5px;" data=&qu ...
- matlab学习GUI可调的界面窗口
创建一个GUI界面,在此依然利用GUI_01的窗口来演示 发现它的最大化窗口不可调 在GUI绘制中,工具--->选择GUI选项---->选择第二个成比例 再运行就可以调控大小了