Używam Vima do pisania C ++ i mam sporo #include<>
instrukcji, komentarzy itp., Które muszę dołączyć do każdego nowego pliku, który tworzę. dodałem
autocmd BufNewFile *.cpp r C:\(full file path of skeleton text file)
do mojego vimrc, ponieważ słyszałem, że tworzy bufor z tekstem, którego potrzebuję. Jak mogę dodać ten tekst do nowego pliku? Czy istnieje prosty sposób na zrobienie tego z bufora, czy jest inny prosty sposób na zrobienie tego? Słyszałem też trochę o wtyczkach szablonów. Czy istnieje bardzo prosty, który mógłby to dla mnie zrobić?
vimrc
buffers
autocmd
filetype-c++
wiolonczela elektryczna
źródło
źródło
autocmd
i utworzeniu pliku szkieletu?:r C:\(full file path of skeleton text file)
? Czy otrzymujesz jakieś błędy?:enew
nie będzie działać, ale:e newfile.cpp
powinno działać, jeślinewfile.cpp
jeszcze nie istniało (nawet jeśli jest puste).:enew
nie będzie działać, jest to, że edytujesz nowy, nienazwany bufor, a następnie zapisujesz go jako plik .cpp.BufNewFile
uruchamia się tylko wtedy, gdy edytujesz nowy plik z docelową nazwą pliku.Odpowiedzi:
Tekst szkieletu z istniejącego pliku można dodać do nowego pliku, wstawiając linię
do vimrc.
BufNewFile
Zdarzenie nie działa, gdy tworzony jest nowy plik w dwóch etapach stosując:enew
potem:sav filename
. Zamiast tego utworzenie nowego pliku za pomocą:e filename
wyzwala automatyczne polecenieBufNewFile
zdarzenia w vimrc, dodając zawartość szkieletowego pliku tekstowego do nowo utworzonego pliku.źródło
:help template
..vimrc
zatłoczeniu, czy jest jakaś inna lokalizacja w~/.vim/
hierarchii, w której mogę ją umieścić?Rzeczywiście, wtyczki ekspandera szablonów pomogą ci w tym zadaniu.
:read
jest krokiem 0 wtyczek ekspandera szablonów.Na przykład szablon mu będzie próbował dołączyć foo.h z foo.cpp, jeśli zostanie wykryty foo.h. Pozwoli to również na rozszerzenie nagłówków zawierających dynamiczne dane (data, autor, licencja / prawa autorskie itp.).
źródło
Aby ustawić domyślny szkielet dla wszystkich typów plików i dostosować go do konkretnego projektu:
Umieść domyślne szkielety pod
~/.vim/skeleton
, np .:~/.vim/skeleton/vim
,~/.vim/skeleton/sh
.Umieść szkielet projektu
balabala/project/.vim/skeleton
. Tak długo, jak~/.vim
pojawia się przedbalabala/project/.vim
in:h rtp
,balabala/project/skeleton/
będzie używany jako katalog szkieletowy.źródło