最近在学习go lang。
我发现在很多情况下,我需要输入以下文本:
package main
import "fmt"
func main () {
}
所以我想也许我可以在我的 .vimrc
中编写一些 vim 函数,这些函数可以在使用 vim 时将模板文本写入当前文件。这可以节省我很多工作。
我知道经过几个小时的学习 vim 脚本语言后,我可以弄清楚。但我认为这对于许多缺乏经验的 vim 用户来说是一个常见的需求,而且我在 Stackoverflow 上没有找到类似的问题。所以我就问了这个问题。
最佳答案
您可以按如下方式创建模板:
首先,创建一个文件(例如 base.go
),该文件将作为您在问题中输入的代码片段内的模板(我将我的模板存储在 $HOME/.vim/templates/<language>/
中,所以在您的情况下,它将是 $HOME/.vim/templates/go/base.go
,但位置实际上取决于您),
然后,在您的 .vimrc
中,添加以下映射:
nnoremap <space>t :-1read $HOME/.vim/templates/go/base.go<CR>/{<CR>o
当您按 space-t
时,此映射将执行以下操作正常模式下:
- 文件内容
$HOME/.vim/templates/go/base.go
插入到光标所在的位置, - 光标移至开头
{
, - 您将进入括号中的插入模式。
所以当你打开一个新的 go 文件时,按 space-t
它会插入您的模板并将您放置在需要开始编码的位置。
编辑:
-1
指示插入文件内容的位置( :.read file
将其插入到当前 ( .
) 行之后。 -1
将其插入到当前行 -1 之后。所以实际上,它是插入它光标所在位置并向下移动包括您所在行在内的行。有关详细信息,您可以阅读 :help range
。
跳转是通过/{<CR>o
部分完成的它寻找 {
( /{
),转到它 ( <CR>
) 并在 ( o
) 之后进入插入模式。
关于vim - 如何编写vim函数将模板文本粘贴到当前文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55469524/