2016-09-19 56 views
2

當我創建具有特定擴展名的文件時,是否可以讓vim自動在第一行(或幾行第一行)上自動寫入內容?vim中的自動第一行

例如(這只是一個例子)如果我創建.txt文件我希望vim在第一行寫上「Hello」。

可能嗎?如果是,如何?

回答

3

是的,你可以通過autocommands來實現。一個自動的一般結構是

au event filetype command 

在特定情況下,你想

au BufNewFile *.txt normal iHello 

說明:

au   "Define a new autocommand 
BufNewFile "When you create a new file 
*.txt   "With the extension '.txt' 
normal iHello "Execute the command 'normal iHello', which is like typing 'iHello' manually 
3

docs給出瞭如何做到這一點的:h skeleton的想法。本質上,您只需在您的.vimrc中使用BufNewFile自動命令。

文檔假設您將從文件中讀取您的初始內容。所以,你的例子,假設skeleton.txt包含文本「Hello」:

autocmd BufNewFile *.txt 0r ~/vim/skeleton.txt

另外,如果你的第一行是比較簡單的,你可以隨時通過剛剛進入插入模式,並添加您需要的文本硬編碼。

au BufNewFile *.txt normal iHello

This answer從vi.stackexchange提供幾個例子調用函數中,是更復雜一點。

0

在我的情況下,打壞文件,我有這個在我的〜/ .vimrc

augroup sh 
    au BufNewFile *.sh 0r ~/.vim/skel/template.sh 
"au BufWritePost *.sh,*.pl,*.py,*.cgi :silent !chmod a+x <afile> 
augroup end 

如果我創建一個新的文件「BufNewFile」 VIM在線路零「0」讀打開「R 「文件template.sh的內容,我可以放在任何我想要的文件上。

如果我發現第二行刪除「在開始時我也有自動更改文件權限