簡體   English   中英

vimrc的語法是什么,如何在vimrc中使用變量,函數?

[英]What's the grammar of vimrc, how to use variable, function in vimrc?

由於某些個人原因,我想非常詳細地自定義我的vim。 例如,在特定目錄中,說“ CFxxx”,當我創建一個cpp文件時,我希望它可以將一些模板代碼預寫到我的代碼中。 但是,如果我不在該目錄中,那么vim可以正常工作。

正如我在其他人的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

但這比我想要的要弱。 我希望它是特定於目錄和特定於文件類型的。 我發現有一個函數getcwd()作為vim中的內置函數,可以用來獲取目錄,但是我不知道如何在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

在這個精彩的教程中,您將找到有關這些行(自動命令,條件語句 ,函數)的說明: learningvimscriptthehardway 長途兔,但完全值得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM