[译] Vimscript 有路勤为径 —— 自动命令

目录: vim | 标签: | 发布时间:

自动命令

现在我们要介绍一个几乎和映射一样重要的概念:自动命令。

自动命令会告诉 Vim 在特定的时候运行特定的命令。让我们赶紧来看一个例子。

:edit foo 打开一个新的文件,然后马上用 :quit 关闭它。 查看下硬盘,你会注意到文件并不存在。这是因为 Vim 并没有真正创建这个文件,除非在第一时间保存下。

让我们修改下,这样一旦你编辑文件的时候,Vim 就会创建它们。运行以下命令:

:autocmd BufNewFile * :write

这有很多需要弄明白的东西,但是尽管试一试,能看到它正常工作。 再次运行 :edit foo,用 :quit 关闭它,然后看看硬盘。 这次文件会在那(当然是空的)。

你必须得关闭 Vim 来删除自动命令。我们会在以后的章节中讨论如何避免这个。

阅读更多>>


[译] Vimscript 有路勤为径 —— 鸣谢

目录: vim | 标签: | 发布时间:

首先,我要感谢 Zed Shaw,是他写了 Learn Python the Hard Way, 并且免费提供给读者看。 本书的格式和风格就是直接受到它的影响。

我还要感谢以下 GitHub 和 Bitbucket 用户,他们发送了很多 pull request、 指出了很多拼写错误、提出了很多问题、以及做了其他很多贡献:

阅读更多>>


[译] Vimscript 有路勤为径 —— 训练你的手指

目录: vim | 标签: | 发布时间:

训练你的手指

在这一章,我们将会讨论如何更有效的学习 Vim,但首先我们需要做一点点准备。

让我们再建立一个映射,它比之前创建的任何其他映射都能更好的解放你的左手。

:inoremap jk <esc>

现在进入插入模式,并且键入 jk。Vim 会表现得就像你按下了 Esc 键一样,让你返回到普通模式。

Vim 有许多默认方法来退出插入模式:

每一个都要求你极不舒服的伸缩手指。 而用 jk 就非常棒,因为这些按键正好在最强大的两个手指下, 你就不再需要像弹奏乐器一样了。

有些人会更喜欢用 jj 而不是 jk,但是我更喜欢 jk ,这有两个原因:

如果在你使用的语言中,jk 是一个频繁使用的字母组合(比如荷兰语),你可能会想选择一个不同的映射。

阅读更多>>


[译] Vimscript 有路勤为径 —— 案例分析:grep操作符,第一部分

目录: vim | 标签: | 发布时间:

案例分析:grep操作符,第一部分

在本章节和后面的章节中,我们会完整地创建一段足够复杂的 Vimscript 代码。 我们会讨论几种之前没看过的东西,以及如何把之前学过的东西在实战中组合在一起。

在你完成本次案例分析的过程中,碰到了任何不熟悉的,都应该用 :help 查阅。 如果似懂非懂地完成了所有的东西,你将学不到多少东西。

grep 命令

如果从来没用过 :grep,你现在就应该花上一分钟来阅读 :help :grep:help :make。 如果之前从来没有用过 quickfix 窗口,那就阅读 :help quickfix-window

简而言之::grep ... 会运行一个外部grep程序来处理输入的任何参数,解析结果, 然后填充到quickfix列表,这样你就可以在 Vim 中跳到那些结果上了。

我们的例子就是要让 :grep 更容易使用,通过添加一个“grep操作符”,可以用任何 Vim 内置(或自定义)的移动来选择想要搜索的文本。

阅读更多>>


[译] Vimscript 有路勤为径 —— execute normal!命令

目录: vim | 标签: | 发布时间:

execute normal!命令

既然我们已经学习了 executenormal!,那就进一步的讨论一个常用的 Vimscript 习惯. 运行以下命令:

:execute "normal! gg/foo\<cr>dd"

这会移动到文件顶部,搜索第一次出现 foo 的地方,然后删除这一行。

之前我们已经尝试了在搜索命令中使用 normal!,但是没办法按下回车来真正执行搜索。 结合 normalexecute 就能解决这个问题。

execute 让你以编程的方式构建命令,这样就可以用普通的 Vim 字符串转义序列来生成需要的非打印字符。 试试以下命令:

:execute "normal! mqA;\<esc>`q"

这个命令做了什么?让我们拆分开来看:

这看起来有点吓人,但是实际上是非常有用的:它在当前行的末尾添加一个分号,而把保留光标在原处。 如果你在写Javascript,C,或任何其他用分号作为语句终止符的语言时,忘记了写分号, 那么为这个命令创建一个映射肯定能派上用场。

阅读更多>>


Welcome to Jekyll!

目录: jekyll update | 标签: | 发布时间:

You'll find this post in your _posts directory - edit this post and re-build (or run with the -w switch) to see your changes! To add new posts, simply add a file in the _posts directory that follows the convention: YYYY-MM-DD-name-of-post.ext.

Jekyll also offers powerful support for code snippets:

def print_hi(name)
  puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.

Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll's GitHub repo.


[译] Vimscript 有路勤为径 —— 前言

目录: vim | 标签: | 发布时间:

程序员们将想法实现成文本。

这些文本转变成数字,而这些数字又与其他的数字想碰撞,最终让让一切变的可能

作为程序员,我们用文本编辑器把我们的想法实现成一段一段的文本,我们称其为“程序”。 全职的程序会花上成千上万的时间和他们的文本编辑器打交道, 而在这过程中他们会做很多事:

阅读更多>>


[译] Vimscript 有路勤为径 —— 设置选项

目录: vim | 标签: | 发布时间:

设置选项

Vim 有很多选项,通过修改它们可以改变 Vim 的行为。

主要有两种选项:布尔选项(“开”或者“关”)和赋值选项。

布尔选项

运行以下命令:

:set number

行号就会出现在窗口的左侧,如果它们之前不存在的话。

阅读更多>>


[译] Vimscript 有路勤为径 —— 编辑 Vimrc

目录: vim | 标签: | 发布时间:

编辑 Vimrc

在继续学习更多的 Vimscript 之前,让我们找一种更轻松的方法在 ~/.vimrc 文件中新增映射。

有时候,你正全力以赴地写着代码来解决一个问题,然后发现用一个新的映射可以让编辑更轻松。 你应该马上就把它加到 ~/.vimrc 文件中,以确保不会忘记,但是又想分散现在的注意力。

本章的主旨就是让你能更轻松地更轻松地编辑文本。

这并不是写错了。 再阅读一次。

本章的主旨就是让你能(更轻松地(更轻松地(编辑文本)))。

阅读更多>>


[译] Vimscript 有路勤为径 —— 严格映射

目录: vim | 标签: | 发布时间:

严格映射

准备好迎接即将到来的疯狂吧。

到目前为止,我们已经用 mapnmapvmap、以及imap 创建按键映射来节省时间。 这些命令能正常工作,但是都有一个缺点。 运行以下命令:

:nmap - dd
:nmap \ -

现在试试按下 \ (在普通模式中)。看看发生了什么?

当按下 \ 键时,Vim 匹配到映射,然后说:“我应该改为运行-键”。 但是,-又被映射到做其他的事情了! Vim 又匹配到了,然后说“哦,我现在必须去运行dd”,所以就把当前行删除了。

阅读更多>>

加载更多