Rare But Powerful Vim Commands.
@1:
We all know about :wq
, but we usually ignore :x
.
:x
和:wq
都是保存当前文件并退出。
这两个命令实际上并不完全等价,当文件被修改时两个命令时相同的。但如果未被修改,使用:x
不会
更改文件的修改时间,而使用:q
会改变文件的修改时间。
@2:
当你很快地打字时,很有可能会连续输入同一个单词两次,就像this this。这种错误可能骗过任何一个人
即使是你自己重新阅读一遍也不可避免。幸运的是,有一个简单的正则表达式可以用来预防这个错误。
使用搜索命令(默认是/)然后输入:
\(\<\w\+\>\)\s*\1
If you did not see anything, it means:
- no duplicate words exists
- your .vimrc lack this configuration:
set hlsearch
If you don't understand the RE above, you can read this article. And I also suggest that we should learn
more about RE.
@3:
一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义缩写,它可以实时地把你输入的东西替换为另外
的东西。语法格式如下:
:ab [缩写] [要替换的文字]
一个通用的例子是:
:ab asap as soon as possible
会把你输入的 “asap” 替换为 “as soon as possible”。
This command is amazing.
@4:
在你忘记用 root 方式打开文件时的文件保存
这可能是一个在论坛中一直受欢迎的命令。每当你打开一个你没有写入权限的文件(比如系统配置文件)并做
了一些修改,Vim 无法通过普通的 “:w” 命令来保存。
你不需要重新以 root 方式打开文件再进行修改,只需要运行:
:w !sudo tee %
这会直接以 root 方式保存。
NOTE: There is a space symbol(" ") between "tee" and "%"
@5:
g? 使用 ROT13 对整个区域进行编码
At the very beginning, I think this command is useless.
@6:
Vim 默认有自动补全的功能。
Vim尝试通过已经输入的单词来预测单词的结尾。比如当你在同一个文件中第二次输入 “compiler” 时,仅
仅输入“com”然后保持在插入模式,按 Ctrl+n键就可以看到Vim为你补全了单词。很简单,但也很有用。
@7:
删除标记内部的文字
当我开始使用Vim时,一件我总是想很方便做的事情是如何轻松的删除方括号或圆括号里的内容。转到开始的
标记,然后使用下面的语法:
di[标记]
把光标放在开始的圆括号上,使用di(
来删除圆括号内的文字.若为方括号或者是引号,则使用di{
和di"
If we want to delete the complete content of a code block, this may help a lot.
@8:
删除指定标记前的内容
和删除标记内部有些相似,但目的不同。命令如下:
dt[标记]
会删除所有光标和标记之间的内容(保持标记不动)
@9:
把光标下的文字置于屏幕中央
如果你想强制滚动屏幕来把光标下的文字置于屏幕的中央,使用命令
zz
@10:
跳到上一个/下一个位置
当你编辑一个很大的文件时,经常要做的事是在某处进行修改,然后跳到另外一处。如果你想跳回之前修改的地方,使用命令:
Ctrl+o
来回到之前修改的地方.类似的:
Ctrl+i
会回退上面的跳动。
Reference:
Rare But Powerful Vim Commands.的更多相关文章
- VIM Commands
Vim Commands Commands in NORMAL modes Motions small granular: move by direction k h l j mid granular ...
- 130+ essential vim commands
Basics :e filename Open filename for edition :w Save file :q Exit Vim :q! Quit without saving :x Wri ...
- vim 的寄存器
If you've been following my series on Vim, it should be clear now that Vim has a pretty clear philos ...
- 跟我一起学习VIM
跟我一起学习VIM - The Life Changing Editor 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹 ...
- 跟我一起学习VIM - The Life Changing Editor
前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧.所以分 ...
- Vim插件之Command-T使用问题
最近在使用vim插件CommandT时出现问题其实就是vim没有支持ruby,不过google之后找到了解决方法,老外的态度还是很让人敬佩的,度娘搜索的结果太让人呕心了.. 贴下,以后再次遇到解决. ...
- 【转载】跟我一起学习VIM - vim插件
目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...
- (转载)跟我一起学习VIM - The Life Changing Editor
原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...
- (转) 共享个很棒的vim配置
发现了一个很棒的vim配置方法,现在共享给大家. https://github.com/kepbod/ivim ivim - The Vim Distribution of Xiao-Ou Zha ...
随机推荐
- Java Web应用服务器Resin 国内下载
在做 PHP On Jvm的测试,发现Resin很难下,速度太慢. 下载地址:http://pan.baidu.com/s/1qWyffnY
- ORA-01036: 非法的变量名/编号
今天写程序时,往Oracle中插入二进制数据,出现错误ORA-01036:非法的变量名/编号,代码如下: strSql = "INSERT INTO KA99 (KA991,KA992,KA ...
- HTML表单页面的运用
本章目标:掌握表单基本结构<form> 掌握各种表单元素 能理解post和get两种提交方式的区别 本章重点:掌握各种表单元素 本章难点:post和get两种提交方式的区别 一. H ...
- 【BZOJ】3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=3400 既然是倍数我们转换成mod.. 设状态f[i][j]表示前i头牛modj的方案 那么答案显然是 ...
- javaScript 的小技巧
20160314知识点的补充:a-1:最原始的操作要比函数调用快 <script type="text/javascript"> var min = Math.min( ...
- Java线程工作内存与主内存变量交换过程及volatile关键字理解
Java线程工作内存与主内存变量交换过程及volatile关键字理解 1. Java内存模型规定在多线程情况下,线程操作主内存变量,需要通过线程独有的工作内存拷贝主内存变量副本来进行.此处的所谓内存模 ...
- Visual Studio 2015 自定义文件编译
自己编译好了 QT 5.6.0 Alpha 版本后,如何使用 VS2015 创建 QT 工程呢? 1.安装插件,安装失败!因为 VS2015 不再支持 ADDIN , 所以 QT-VS-ADDIN 只 ...
- SetForegroundWindow以及 如何将一个某个窗口提到最顶层(转)
http://hi.baidu.com/gookings/item/2b7912ca8d5b3625a0b50aa2 SetForegroundWindow 函数功能:该函数将创建指定窗口的线程设置到 ...
- lookcss在深夜23:32开通
CSS在深夜23:32开通 话说 哥也耐不住寂寞搞个网站玩玩.顺便记录一些生活和学习和工作和思想和神马的点点滴滴~ 好吧 ~本来想起个名字叫涉趣.谁知道百度了一下,已经有人叫这个名字了,杯具,貌似还是 ...
- Python全栈day24-25(面向对象编程)
参考文档: http://www.cnblogs.com/linhaifeng/articles/6182264.html# 类:把一类事物的相同的特征和动作整合到一起就是类,类是抽象的概练 对象:就 ...