我编辑一个大的C,C++或Java文件,比如大约15000行,有很长的函数定义,比如大约400行.当光标位于函数定义的中间时,在Vim状态行中查看函数名称会很酷.
当我们:set ls=2
在Vim中设置时,我们可以获取文件路径(相对于当前目录),行号等.如果我们也可以看到函数名称,那将非常酷.任何想法如何得到它?
目前我[[
用来开始这个功能Ctrl- O回到我正在编辑的那一行.
man*_*m-n 17
要在C程序中 显示当前函数名称,请在vimrc中添加以下内容:
fun! ShowFuncName()
let lnum = line(".")
let col = col(".")
echohl ModeMsg
echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW'))
echohl None
call search("\\%" . lnum . "l" . "\\%" . col . "c")
endfun
map f :call ShowFuncName() <CR>
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要"f"键,只需将功能映射到您喜欢的任何内容即可.
Wou*_*r J 12
您可以使用ctags.vim,它将在标题或状态栏中显示当前函数名称.
消息来源:https://superuser.com/questions/279651/how-can-i-make-vim-show-the-current-class-and-method-im-editing
基于@manav mn 的回答
'n' 标志search()
不会移动光标,因此具有相同功能的较短版本将是:
fun! ShowFuncName()
echohl ModeMsg
echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bWn'))
echohl None
endfun
map f :call ShowFuncName() <CR>
Run Code Online (Sandbox Code Playgroud)
参考:运行 :help search()