Function 什么';这是vimrc的语法,如何在vimrc中使用变量、函数?

Function 什么';这是vimrc的语法,如何在vimrc中使用变量、函数?,function,vim,Function,Vim,出于个人原因,我想非常详细地定制我的vim。例如,在一个特定的目录中,比如说“CFxxx”,当我创建一个cpp文件时,我希望它在我的代码中预写一些模板代码。但如果我不在该目录中,vim将正常工作 正如我在其他人的vimrc上发现的,他们定义了一个函数,并使用filetype来检测cpp文件,并使用如下代码来添加模板代码: if (expand("%:e") == 'cpp' || expand("%:e") == 'cc') call append(line(".")+6, "#incl

出于个人原因,我想非常详细地定制我的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
if(expand(“%:e”)=“cpp”| expand(“%:e”)=“cc”)
调用append(第(“.”+6行,“#include”)
调用append(第(“.”+7行,“使用名称空间std;”)
调用append(第(“.”+8,”)行)
恩迪夫
但这比我想要的要弱。我希望它是特定于目录和文件类型的。我发现在vim中有一个内置函数getcwd(),可以用来获取目录,但我不知道如何在vimrc中使用它。这就是重点


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

您可以向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
“所有cpp文件的常规内容
设b:com='/'
inoremap s std::
inoremap str std::string
“针对您的特定目录的特定内容
如果getcwd()=“diryouwant”
“在这里做你想做的,比如:
自动换行
调用设置行('1',“#包括”)
恩迪夫

您将在本精彩教程中找到关于这些行(autocommand、conditional、function)的解释:。很长的图图,但完全值得。

您可以添加到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
“所有cpp文件的常规内容
设b:com='/'
inoremap s std::
inoremap str std::string
“针对您的特定目录的特定内容
如果getcwd()=“diryouwant”
“在这里做你想做的,比如:
自动换行
调用设置行('1',“#包括”)
恩迪夫

您将在本精彩教程中找到关于这些行(autocommand、conditional、function)的解释:。很长的芭蕾舞,但绝对值得

要学习vimscript,请查看上提供的非常好的链接。要学习vimscript,请查看上提供的非常好的链接