什么是vimrc的语法,如何在vimrc中使用变量,函数?

时间:2015-12-24 08:05:08

标签: function vim

出于某些个人原因,我想非常详细地定制我的vim。例如,在一个特定的目录中,比如说“CFxxx”,当我创建一个cpp文件时,我希望它能在我的代码中预先写一些模板代码。但如果我不在那个目录中,那么vim正常工作。

正如我在别人的vimrc上发现的那样,他们定义了一个函数,并使用filetype来检测cpp文件,并使用这样的代码来添加模板代码:

if (expand("%:e") == 'cpp' || expand("%:e") == 'cc')
    call append(line(".")+6, "#include<bits/stdc++.h>")
    call append(line(".")+7, "using namespace std;")
    call append(line(".")+8, "")
endif

但这比我想要的要弱。我希望它是特定于目录和特定于文件类型的。我发现有一个函数getcwd()作为vim中的内置函数,可用于获取目录,但我不知道如何在vimrc中使用它。这就是重点。

那么vimrc的语法是什么?它是一种着名的编程语言吗?我在哪里可以学习编写正确的代码来自定义我的vim并解决上述问题。

1 个答案:

答案 0 :(得分:0)

您可以添加到您的vimrc:

augroup cpp_setup
    autocmd!
    autocmd FileType cpp source cpp.vim
augroup END

然后创建一个cpp.vim文件,放入

" General stuff for all your cpp file
let b:com = '//'

inoremap <buffer> <leader>s std::
inoremap <buffer> <leader>str std::string

" specific stuff for your specific dir
if getcwd() ==# 'diryouwant'
    "Do what you want here, such has:
    set wrap
    call setline('1', "#include <cstdlib>")
endif

您将在这个精彩的教程中找到关于这些行(自动命令,条件,函数)的解释:learnvimscriptthehardway。长tuto,但完全值得。