我正在尝试在我的vimrc中编写一个函数,该函数允许我将vim光标(而不是鼠标光标)“悬停”在相关单词上并创建一个doc注释(已经在评论)以及新的子程序。所以我将从以下开始:
newSubName
然后将鼠标悬停在上面并调用sub,它将替换为:
#------------------------------------------------------------------------------
# Subroutine: newSubName
# Function :
# Parms :
# Returns :
# Assumes :
#------------------------------------------------------------------------------
sub newSubName() {
}
我有用于在文件底部创建子“声明”的代码(来自互联网),但我无法破译如何将其转换为我想要的内容。我正在使用的代码是:
function! Newsub()
let word = "sub " . expand("<cword>") . "()" . " {" . "}"
let ln = search("__.*__", 'nW')
if ln == 0
call append('$', word)
else
call append(ln-1, word)
endif
endfunction
感谢任何和所有帮助。
谢谢, RzITex
答案 0 :(得分:0)
任何模板/片段扩展器都应该简化您的生活。例如,使用mu-template v2.4.0(目前仅通过svn / vim-addon-manager提供):
VimL: " {rtp}/after/template/{filetype}/func.template
#------------------------------------------------------------------------------
# Subroutine: <+g:func+>
# Function : <++>
# Parms : <++>
# Returns : <++>
# Assumes : <++>
# Date : <+strftime('%c')+>
# Author : <+g:myname_that_I_need_to_define_in_my_vimrc+>
#------------------------------------------------------------------------------
sub <+g:func+>() {
<++>
}<++>
和ftplugin {rtp} / ftplugin / {filetype} .vim
" here the anti-inclusion guards, ...
" and the untested mapping
nnoremap <buffer> <c-x>f :let g:func=expand('<cword>')<cr>"_diw:exe "Mutemplate ".&ft."/func"<cr>:unlet g:func<cr>
注意:此映射包含您需要的所有内容:
"_diw
(:h "_
,:h diw
):put
的函数,请将其命名为s:FuncExpand(name)
,并使用diw:call <sid>FuncExpand(@")<cr>
的映射调用它(此处我使用另一种方法来剪切函数名称)在光标下。。