![.vimrc 使用当前正在编辑的文件名](https://linux22.com/image/1277315/.vimrc%20%E4%BD%BF%E7%94%A8%E5%BD%93%E5%89%8D%E6%AD%A3%E5%9C%A8%E7%BC%96%E8%BE%91%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D.png)
我有一个插件,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
------------------------------------------------------------------------
%