2015-12-24 29 views
0

由于一些个人原因,我想定制我的vim非常详细。例如,在一个特定的目录中,比如说“CFxxx”,当我创建一个cpp文件时,我希望它在我的代码中预先写入一些模板代码。但是如果我不在那个目录下,vim正常运行。什么是vimrc的语法,如何在vimrc中使用变量和函数?

正如我在别人的vimrc里发现,他们定义一个函数,并使用文件类型检测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 

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

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

+0

要了解vimscript,请查看[SO vim标签信息页面](http://stackoverflow.com/tags/vim/info)上给出的非常好的链接, – yolenoyer

回答

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 

你会发现那些行的解释(自动命令,conditionnal,功能)在这个奇妙的教程:learnvimscriptthehardway。长tuto,但完全值得。