出于某些个人原因,我想非常详细地定制我的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并解决上述问题。
答案 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,但完全值得。