[英]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.