来自

上一篇讲过了Vim的基本操作命令(打开,编辑,保存退出)以及Vim的三种基本模式和光标的基本导航(hjkl),今天讲一些稍微高级点的光标移动,以及一些基本的文本操作命令。

翻一页/半页

对于一个上千行的文本,如果想光标移动几行或翻页查看,hjkl无疑没法满足我们的需求,如果我们结合CTRL键操作的话,翻页时很轻松的事儿。

CTRL+f:向下翻一页
CTRL+b:向上翻一页
CTRL+d:向下翻半页
CTRL+u:向上翻半页

当然我们只要记住fbdu四个键就行,反正他们是用来与CTRL键组合翻页功能的,具体怎么翻的,自己实践操作几遍就能记住了。

光标一次移动一个单词的长度
w:移动到下一个单词的起始处(既然是w,代表的意思就是word,好记吧)
W:移动到下一个单词的起始处

那么w和W它俩有什么区别呢,w会把一个单词理解成由连续的字母或数字或特殊字符,而W却以空格来识别是否到了下一个单词,一图胜千言

与之相反的两个操作时b和B

b:移动到前一个单词的起始处
B:移动到前一个单词的起始处(b和B的区别与w和W是同理的)
光标在一行内的移动
0(零):移动到行首
$:移动到行未
^:移动到当前行的第一个非空字符处(如果该行首没有空格,那么效果与0是一样的)
g_:移动到当前行的最后一个非空格字符处
插入,追加字符
i:在当前光标位置插入字符
o:在当前行往下插入新的一空行
O:在当前行往上插入新的一空行
a:在当前光标后追加字符
R:替换当前光标的字符直到推出插入模式(按ESC)
:r filename:把文件名为filename的内容插入当当前行的下一行
:r! command:把command返回的结果插入到当前行的下一行
拷贝一个单词、行首、行尾、整行
yw:拷贝当前的一个单词
y0:拷贝的范围是当前光标处到行首
y$:拷贝的范围是当前光标处到行尾
yy:拷贝当前行
nyy:从当前行开始拷贝n行(这里的n是数字)

拷贝完后用p就可以粘贴了。

删除一个单词,行首、行尾、整行
x:删除当前光标处字符(严格来说x不属于插入,因为你还要按i才能插入)
dw:删除当前光标出一个单词
d0:删除光标处到行首的字符
d$:删除光标处到行尾的字符
dd:删除整行
ndd:删除n行(同样n代表数字)

每日一Vim(1)的更多相关文章

  1. VIm 一些常用的设置

    一些常用的vim设置   以下内容皆来源于网络,感谢原作者.如果引用出处错误,请告知以便修改. 1. vim的几种模式和按键映射 转载自:[1] Map是Vim强大的一个重要原因,可以自定义各种快捷键 ...

  2. 一些常用的vim设置

    以下内容皆来源于网络,感谢原作者.如果引用出处错误,请告知以便修改. 1. vim的几种模式和按键映射 转载自:[1] Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手.vi ...

  3. Vim技巧----选取一个单词

    viw 它的作用是选取一个单词(word),无论光标在这个单词的哪个位置都能选中整个单词. 每日一Vim(18)Text-Object 前两节讲了Visual mode相关内容,这里提一个小问题,“如 ...

  4. 收藏的技术文章链接(ubuntu,python,android等)

    我的收藏 他山之石,可以攻玉 转载请注明出处:https://ahangchen.gitbooks.io/windy-afternoon/content/ 开发过程中收藏在Chrome书签栏里的技术文 ...

  5. 每日vim插件--vim中的文本对象及相关插件

    最近在个人博客上 http://foocoder.com  每天都会介绍一个vim插件,想起来园子也好久没更新了,也来更新一篇. 今天按读者留言的要求,介绍下文本对象.同时还会介绍我在用的几个文本相关 ...

  6. 2018/03/07 每日一个Linux命令 之 cat

    每日一个Linux命令 2018-03-07 Linux 命令 cat cat [-参数] fileName 在之前的Linux使用中 cat 命令一直作为文本输出指令来使用,很少可以深入学习的该命令 ...

  7. vim资源帖

    vimscript教程 http://learnvimscriptthehardway.stevelosh.com/ 阿信的vimscript http://www.axiaoxin.com/arti ...

  8. 老男孩IT教育-每日一题汇总

    老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...

  9. Vim 入门教程

    Vim 入门教程 转载请保留以上信息 Vim 的教程相对比较零散,系统的教程比较少,我也阅读过不少教程,走过很 多弯路.借着 Vim-china 组织组建这一契机,整理下自己学习过的内容, 分享给大家 ...

随机推荐

  1. mybatis源码分析(1)-----sqlSessionFactory创建

    1. 首先了解一下mybatis,包含核心jar ,以及spring相关jar. <!-- Mybatis相关组件 --> <dependency> <groupId&g ...

  2. Microsoft Visual Studio 2010导致系统C盘不断增大问题处理。

    一直用Microsoft Visual Studio 2010做开发,发现最近C盘空间是越来越小,一开始以为是IE或者一些系统补丁造成的临时文件,但是使用360,windows优化大师之类的软件都清过 ...

  3. jquery如何判断checkbox(复选框)是否被选中(转)

    谁都知道 在html 如果一个复选框被选中 是 checked="checked". 但是我们如果用jquery alert($("#id").attr(&qu ...

  4. springMvc 的参数验证 BindingResult result 的使用

    http://blog.sina.com.cn/s/blog_6829be5c0101alxh.html 非常详细的一篇讲解 并且值得深入探讨 http://bbs.csdn.NET/topics/3 ...

  5. UVa-Ecological Premium

    题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. C# http Get/POST请求封装类

    C#HttpHelper官方产品发布与源码下载---苏飞版 http://www.sufeinet.com/thread-3-1-1.html 在C#用HttpWebRequest中发送GET/HTT ...

  7. s:iterator数据累加示例代码

    <s:set var="xs_heji" value="0" /> <s:set var="km_heji" value= ...

  8. 解决spark程序报错:Caused by: java.util.concurrent.TimeoutException: Futures timed out after [300 seconds]

    报错信息: 09-05-2017 09:58:44 CST xxxx_job_1494294485570174 INFO - at org.apache.spark.sql.catalyst.erro ...

  9. Openshift 3.11和LDAP的集成

    1. OpenLDAP的安装 只记录主要步骤,详细可参考 https://access.redhat.com/solutions/2484371 # yum install -y openldap o ...

  10. mysql中避免使用保留字和关键字做列的名字

    设计数据表时,应尽量避免使用MySQL的关键字和保留字作为表名或列名. 比如key和keys为保留字,如果不小心使用关键字或者保留字作为列名字,执行下面的语句会出现语法错误: select * fro ...