358.Vim的一些性质2

Vim的理念

本质上讲,我们的工作是重复性的。不论是在几个不同的地方做相同的小改动,还是在文档的相似结构间移动,我们都会重复很多操作。凡是可以简化重复性操作的方式,都会成倍地节省我们的时间。

Vim 对重复性操作进行了优化。它之所以能高效地重复,是因为它会记录我们最近的操作,让我们用一次按键就能重复上次的修改。这听起来很强大,但是除非我们能够学会规划按键动作,使得在重复时能完成一项有用的工作,否则这没什么用。

掌握这一理念是高效使用 Vim 的关键。

上次修改

一直以为上次修改是直接进入编辑模式输入的字符,删除或者修改等等。例如输入一个单词、删除一个单词或者一行,修改一个单词等等。

但上次修改的范围显然更大,在vim实用技巧这本书中,在每一行的末尾增加一个分号。使用了

$  跳转到行尾
a 输入
; 分号
j 跳到下一行
$ 跳转到行尾
. 重复上次修改,即a;

这里能看到a;即为上次修改。
接下来,书中给了改进的例子

A 跳转到行尾并输入
; 分号
j 跳到下一行
. 重复上次修改,即A;

跳转定义

gd 跳转局部定义
gD 跳转全局定义

光标记忆编辑位置

在重新打开编辑过的文件时,有时希望光标能直接跳转到上次编辑的位置,但编辑器不支持。这时需要在vimrc中输入以下几行:

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("`\"") > 1 && line("`\"") <= line("$") | exe "normal! g`\"" | endif
" for simplicity, "  au BufReadPost * exe "normal! g`\"", is Okay.
endif

但是有时候即使修改了,但还不起作用,这时候可能跟vim对/的权限有关系,删除/.viminfo即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录(?)[-] 关于Vim 1 Vim的几种模式 启动Vim 文档操作 光标的移动 1 基本移动 2 翻屏 3 ...
    SunnyLeong阅读 12,820评论 0 32
  • 曾经在思科的工厂测试系统`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超过2年半,现在...
    戈多在地狱阅读 5,832评论 1 13
  • 1. Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行。 插入模式:可以输入文本,在正常模式下,按...
    红线路亚湾阅读 17,434评论 0 1
  • Unbuntu 14.4安装之后就在终端中使用Tab键不能自动补全,解决办法如下: 1、利用vi编辑器打开/etc...
    占导zqq阅读 4,743评论 0 1
  • 那些夜晚,灯光淡淡的昏黄,窗外风儿摇曳。那棵白樱总在早春第一个开放有凋零。雪花一般美和纯洁。 时间总是不由...
    散人0506阅读 2,515评论 0 0