7种提高工作效率的Vim操作

Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性。

本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标执行相同的重复性操作。抛砖引玉,作为你体验使用Vim进行高效操作的入门级教程。

1. Vim重复操作命令.

vim重复操作命令. (英文句点)介绍过,. 命令可以用于重复上次修改。在《Vim实用技巧》一书中花了大量篇幅介绍" . 范式":一次按键移动,一次按键执行。

假设想在以下的JavaScript代码里的 + 前后加上空格以使代码更加美观,可以执行以下Vim操作:f+s?+?<Esc>;.;.;.

var foo = "method("+argument1+","+argument2+")"; 

在上面的Vim操作中,首先使用字符查找命令 f 查找到第一个出现 + 的位置,然后使用 s 命令删除光标下的字符后再进入插入模式,在输入完 ?+? 后退出插入模式,完成了第一个 + 前后增加空格的操作。

使用Vim命令 ;会在当前行重复查找上次 f 命令所查找的目标字符,而 . 命令则重复上次的修改。因此,可以连续输入 3 次 ;. 来完成全部修改操作。

:Vim命令 scl 的复合命令形式,表示删除一个字符并进入插入模式,更多内容可参考Vim删除并进入插入模式命令c

2. Vim宏

使用Vim . 命令重复执行一些比较简单的任务时非常高效,但是当需要执行的操作比较复杂时,Vim宏是更理想的选择。

Vim宏很适合针对一系列相似的行、段落,甚至是文件,进行重复性的修改。用宏把任意数目的按键操作录制到寄存器,用于之后的回放,可以非常高效地实现重复操作。

假如有很多宏定义的常量

#define CONST_A 1
#define CONST_B 2
#define CONST_C 3
#define CONST_D 4
#define CONST_E 5
...

现在想替换成const常量的形式

const int CONST_A = 1;
const int CONST_B = 2;
const int CONST_C = 3;
const int CONST_D = 4;
const int CONST_E = 5;
...

可以录制这样的一个宏:

  • qa 键开始录制宏,将宏存到 a 寄存器
  • 0 将光标移到行首,按 ce 删除 #define 并进入插入模式,输入 const int 并按ESC回到普通模式
  • e 来到变量名的最后一个字母,按 a 进入插入模式,输入 = ,按ESC回到普通模式
  • A 将光标移动到最后并进入插入模式,输入 ; 并按ESC回到普通模式
  • j 将光标移到下一行,按 q 结束宏录制

录完这个宏之后,就可以按 @a 回放录制的宏操作。每执行一次宏就会把当前行替换成const的形式并自动将光标移到下一行。

因此,只需要按9次 @a 或者一次性执行 [email protected] 就可以替换完所有要编辑的行。

3. Vim可视化模式

Vim可视化模式下可以选择一块编辑区域,然后对选中的文件内容执行插入、删除、替换、改变大小写等操作。

可视化模式能高效地对一块目标区域执行相同的操作,是在Vim场景下执行重复操作的一种高效方法。

比如,如果想一次性注释多行文本,可以如下操作:

(1) 普通模式下按 Ctrl + v 进入块选择模式
(2) 向上或向下移动光标选择多行
(3) 移动光标到行的起始位置
(4) 然后按大写的I进入行首插入模式
(5) 插入注释符
(6) 按Esc回到命令模式

需要注意的是:Vim同时编辑多行时,只有在当前的插入动作 结束后 (按 Esc 退为命令模式),之前选中的其它行才会显示执行后的结果。

4. Vim normal命令

Vim normal 命令可以在命令行模式执行普通模式下的命令,当normal命令与Vim可视化模式结合时,只需很少的操作就能完成大量重复性工作。

比如在编辑Markdown文件时想在某些行前面都加上 - 让普通文本行变成无序列表,可以先用 V 选中这些行,然后按 :‘<,‘>normal I- 并回车即可实现。

5. Vim替换命令s

Vim命令行模式下使用 :substitute 命令 (缩写形式 s ) 可以将指定范围内的字符替换成其他目标字符,实现同时处理多个目标行的操作效果。

例如,假设希望将Vim当前打开文件的所有行尾多余的空格删除,可以使用Vim命令 :%s= *$==

其中,% 表示整个文件范围,*$ 表示以0个或多个 * 结尾的文本行,更多关于 :substitute 命令的使用,可以参考Vim替换命令substitute小结

6. Vim寄存器

Vim中很多东西都是通过寄存器来传递,比如复制剪切一段文本、访问系统的剪贴板,录制的宏等,都是将对应的操作结果保存在寄存器内。使用 :reg 寄存器名 命令可以查看对应寄存器中的内容。

关于Vim寄存器的更多内容可以参考Vim教程网上的内容:Vim寄存器介绍Vim剪切、复制、粘贴和删除操作与Vim无名寄存器

在插入模式下或者命令行模式下,使用 <C-r>+寄存器名 可以输入寄存器里的内容。例如,在插入模式下,可以通过输入 <C-r>" 来插入无名寄存器的内容,或输入 <C-r>0 来插入复制专用寄存器中的内容。

举个例子,想使用 :s 命令替换一个很长的单词而又不想手动输入它,可以先在普通模模式下使用命令 piwpiW 将其复制下来,默认会包存到无名寄存器 " 里,然后使用 <C-r>" 就可以将复制的单词输入到 :s 命令中。

7. Vim光标快速移动

关于Vim光标移动的内容,可以查看Vim光标移动命令汇总,在此先不做赘述。

原文地址:http://blog.51cto.com/14168089/2344487

时间: 2024-10-13 14:42:46

7种提高工作效率的Vim操作的相关文章

7种提高工作效率的Vim操作-Vim使用技巧(6)

Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标执行相同的重复性操作.抛砖引玉,作为你体验使用Vim进行高效操作的入门级教程. 1. Vim重复操作命令. 在vim重复操作命令. (英文句点)介绍过,. 命令可以用于重复上次修改.在<Vim实用技巧>一书中花了大量篇幅介绍” . 范式”:一次按键移动,一次按键执行. 假设想在以下的JavaScr

两个成倍提高工作效率的 Vim 使用技巧

Vim 是个非常好用的工具,很多人一旦开始使用 Vim 之后就再也无法自拔.然而, Vim 仍然有其自身缺陷.陡峭的学习曲线是缺陷之一,在某些使用场景上的局限也不能忽视.今天我们为大家介绍两个方法,来解决使用中的痛点. 在任何地方使用 Vim 我会向大家介绍 Vim-anywhere,这是一个简单的脚本,它允许你使用 Vim 编辑器在 Linux 中的任何地方输入文本.这意味着你能简单地调用自己最爱的 Vim 编辑器,输入任何你所想的,并将这些文本粘贴到任意的应用和网站中.这些文本将在剪贴板可用

线上操作使用tmux提高工作效率

对于经常在线上操作的人来说有一种烦恼,就是在操作过程中,有事离开了一下,电脑自动睡眠了,然后网络断开连接,这时候任务就要重新跑,很烦恼. tmux可以解决这个问题.tmux可以看成虚拟屏幕,不受断网的影响.如果断网了,只重新连接屏幕就行了,虚拟屏幕上的文字都还在. tmux的常用命令如下: tmux new -s session_name tux attach -t session_name tmux ls Control+B d: 暂时断开连接,正在执行的任务不会退出 Control+B Pa

码农提高工作效率

俗话说,天下武功,唯快不破.也就是说要练成天下高手的话,出招速度一定要快,这样才能在江湖上立足,不至于掉了脑袋.而程序员要在IT界混出个名堂,也要有高效的工作效率才行.IT行业时时刻刻都产生着新知识.新技术,要想跟上变革肯定要有几把刷子. 而我本人很喜欢各种各样的方式来提高自己的工作效率,可以分享给大家一些经验. 键盘功底要扎实.敲键盘时要使用标准指法.可能你认为这是程序员的基本功,可是我发现其实很多程序员都做不到这点.看着他们敲代码时那笨拙的指法我就心急.其实炼成标准指法不难,相当年我还是一指

倍数提高工作效率的 Android Studio 奇技

来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14_android-studio-tips/ 这是从Philippe Breault的系列文章<Android Studio Tips Of the Day>中提取出来的自认为精华的部分.这些技巧在实际应用中能够非常大的提高工作效率. 关于快捷键 The File Structure Popup ctrl+f12 此快捷键可以调出当前文件的大纲,并通过模糊匹配快速跳转至指定的方法.勾选上“show a

常使Linux快捷键提高工作效率

近期在工作中发现经常性的使用一些重复性命令,经常性的修改一些长明令,感觉有必要科普一下shell命令行的一些常见快捷键了,以便大家节省时间提高工作效率. 下述所有命令在Linux/unix的shell下有效,这里以bash为主.如有出入,以你自己的服务器为准.本文所指的Linux主要指RHEL/CentOS,unix指的是FreeBSD,这也是服务器中用得最多的版本. Ctrl + a 切换到命令行开始 这个操作跟Home实现的结果一样的,但Home在某些unix环境下无法使用,便可以使用这个组

提高工作效率:给设计师的10条建议

这篇文章虽然原本是”写给自由设计师的10条建议”.但仔细读下来,发现对于坐班的设计师人来说,也很有价值.提高效率,收获更好的成果. 对于很多人来说,自由工作是梦寐以求的事.能够自由分配时间,无人监督,听起来就很棒. 实际上,在家工作容易缺少动力,而且很多事情容易让你分心,自制力不强的人当不好自己的老板,无法有效的进行个人管理.同样的,自由设计师也有相似的问题. 一般自由设计师都会列出一堆待办事项,面对长长的列表,很多人感叹工作多得做不完,因此压力很大.下面是几条小建议,让你的自由工作”有章可循”

巧用Excel提高工作效率

程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统,我们假设叫A系统,B系统,这两个系统都存储了供应商的信息并且和平相处很长时间,忽然有一天上班,就看到业务同学发的钉钉消息: 业务:在不,我发现你们A系统存储的供应商名称不对啊 我:举个例子 业务:有个供应商A系统叫[联营]苏州食行生鲜电子商务有限公司,但是B系统叫苏州食行生鲜电子商务有限公司,类似

如果提高工作效率(转载)

效率由心生,快速提高工作效率秘诀 来源: Veda原型  发布时间: 2012-03-19 15:13  阅读: 2348 次  原文链接   全屏阅读  [收藏] 现代人都很忙,但忙的可能没有效率,可能在"忙人"摸象,也就是瞎忙.也许你的效率可以提升20倍,也许你的激情和潜能可以提升10倍!秘诀就在于目标管理.时间管理.精力管理.如何在短时间内完成更多的事情.如何从痛苦的修行中悟道.如何尊崇内心的自由.如何有更多的时间去享受生活.如何动态平衡工作和生活?!这里有能大大提升工作效率和时