vim 替换扩展为大写
vim substitution expand to uppercase
当我用这个命令打开它到我的 ~/.vimrc 文件时,我将我的文件的名称插入到它的骨架中:
function! HPPFile()
silent! 0r $HOME/.vim/templates/skeleton.hpp
%s/FileName/\=expand("%:t:r")/g
%s/FILENAME/\U\=expand("%:t:r")\E/g
endfunction
autocmd BufNewFile *.hpp call HPPFile()
第一个扩展行效果很好 %s/FileName/\=expand("%:t:r")/g
:FileName
的所有实例都被文件名替换
但是第二条扩展行不起作用%s/FILENAME/\U\=expand("%:t:r")\E/g
-> 看来我不能同时使用大写替换和扩展操作
我尝试了一些变体,但没有机会,我该怎么做?
来自:help sub-replace-\=
:
When the substitute string starts with "\=" the remainder is interpreted as an
expression.
您可以使用 :help substitute()
将您的文件名大写:
function! HPPFile()
silent! 0r $HOME/.vim/templates/skeleton.hpp
%s/FileName/\=expand("%:t:r")/g
%s/FILENAME/\=substitute(expand("%:t:r"),'.*','\U&','')/g
endfunction
看来一旦进入评估模式就必须将它用于所有事情。尝试
%s/FILENAME/\=toupper(expand("%:t:r"))/g
当我用这个命令打开它到我的 ~/.vimrc 文件时,我将我的文件的名称插入到它的骨架中:
function! HPPFile()
silent! 0r $HOME/.vim/templates/skeleton.hpp
%s/FileName/\=expand("%:t:r")/g
%s/FILENAME/\U\=expand("%:t:r")\E/g
endfunction
autocmd BufNewFile *.hpp call HPPFile()
第一个扩展行效果很好 %s/FileName/\=expand("%:t:r")/g
:FileName
的所有实例都被文件名替换
但是第二条扩展行不起作用%s/FILENAME/\U\=expand("%:t:r")\E/g
-> 看来我不能同时使用大写替换和扩展操作
我尝试了一些变体,但没有机会,我该怎么做?
来自:help sub-replace-\=
:
When the substitute string starts with "\=" the remainder is interpreted as an
expression.
您可以使用 :help substitute()
将您的文件名大写:
function! HPPFile()
silent! 0r $HOME/.vim/templates/skeleton.hpp
%s/FileName/\=expand("%:t:r")/g
%s/FILENAME/\=substitute(expand("%:t:r"),'.*','\U&','')/g
endfunction
看来一旦进入评估模式就必须将它用于所有事情。尝试
%s/FILENAME/\=toupper(expand("%:t:r"))/g