.vimrc 使用当前正在编辑的文件名

.vimrc 使用当前正在编辑的文件名

我有一个插件,VIM它基本上为我提供了一个界面SVN命令行工具)。我已经在我的 中映射了 vcscommand 插件的命令:VCSUpdate。一切都很完美,除了一件事::VCSCommit.vimrc

调用 :VCSCommit 后,您通常会写如下注释:

:VCSCommit I've made some minor changes to this file

在我们公司的部署系统中,没有突出显示提交了哪个文件,因此我们通常像这样写注释:

:VCSCommit I've made some minor changes to file .vimrc

在部署系统中,我们看到所有这些提交,因此我们可以知道按下“同步”按钮后哪个文件要上传到生产服务器。

因此,我想知道如何映射 :VCSCommit,以便它将文件名称添加为注释。到目前为止,我的映射是:

map <C-q> :VCSCommit

因此按下 Ctrl+Q 后,它会显示:VCSCommit在底部栏中,但我希望看到:VCSCOmmit my_file_name_that_i_m_editing_now

我怎么做?

答案1

这应该可以。

map <C-q> :VCSCommit <C-R>%

有关详细信息,请参阅

:help c_CTRL-R

编辑

%若要在包含路径时仅插入文件名,请使用以下命令:

map <C-q> :VCSCommit <C-R>=expand("%:p:t")<CR>

扩展:p前面的文件名以包含完整路径,并:t获取该路径的尾部。请参阅

:help expand()

答案2

仅供参考,它svn log -v会向您显示提交修改了哪些文件,因此在提交消息中添加文件名实际上没有必要。

首先没有-v

% svn log -r2                                      
------------------------------------------------------------------------
r2 | mkomitee | 2011-05-27 08:56:02 -0400 (Fri, 27 May 2011) | 1 line

change
------------------------------------------------------------------------

现在进行相同的修订-v

% svn log -vr2                                      
------------------------------------------------------------------------
r2 | mkomitee | 2011-05-27 08:56:02 -0400 (Fri, 27 May 2011) | 1 line
Changed paths:
   M /baz

change
------------------------------------------------------------------------
% 

相关内容